본문 바로가기

게임 개발/C#11

몬스터 FSM 참고자료 carrotclub.tistory.com/entry/%EB%AA%AC%EC%8A%A4%ED%84%B0-FSM-%EA%B5%AC%ED%98%84 몬스터 FSM 구현 실용적인 예제로 본 게임 인공지능 책을 보고 C++ FSM을 구현할 때는 별 문제가 없었지만 이중상속이 지원되지 않는 유니티 C# 환경에서 FSM을 구현 하려면 딜리게이트나 코루틴을 이용해야 하는 carrotclub.tistory.com s-sense.tistory.com/4?category=797115 [Unity3D]FSM을 활용한 AI개발(2) 1. 서론 FSM이라고 검색하면 제일 눈에 띄는 사진과 설명이다. 실제로 FSM이 날아다니는 스파게티 몬스터라고 생각하지 않길 바랍니다... 유한 상태 기계 FSM(finite-state machi.. 2021. 4. 11.
오브젝트 풀링 https://wergia.tistory.com/203 2020. 8. 12.
List 클래스를 LINQ로 정렬하기 콜라이더로 검출한 오브젝트들을 거리 순서에 따라 오름차순 정렬을 하고 싶었다. 게임오브젝트와 거리 변수를 담는 클래스를 선언하고 List로 선언하고 LINQ를 이용하여 오름차순으로 정렬하는데 성공했다. 하지만 LINQ로 정렬된 게임오브젝트만 따로 배열로 저장하려고 했지만 방법을 못 찾았다. C# List 클래스 정렬 방법을 찾아서 그걸로 구현할 생각이다. 그래도 LINQ로 구현한 건 저장해야지 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Linq; //LINQ 사용 public class LightningStrike : MonoBehaviour { public class Target {.. 2020. 7. 15.
변수(variable) 변수(variable) 컴퓨터 프로그래밍에서 아직 알려지지 않거나 어느 정도까지만 알려져 있는 양이나 정보에 대한 상징적인 이름이다. 데이터를 담는 일정 크기의 공간 참고링크 https://ko.wikipedia.org/wiki/%EB%B3%80%EC%88%98_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99) 2020. 5. 15.
매개변수(parameter), 전달인자(argument) 매개변수(parameter)와 전달인자(argument) 컴퓨터 프로그래밍에서 매개변수란 변수의 특별한 한 종류로서, 함수 등과 같은 서브루틴의 인풋으로 제공되는 여러 데이터 중 하나를 가리키기 위해 사용된다. 전달인자는 (log(37)에서 37과 마찬가지로) 실제로 함수 또는 루틴에 전달되는 값을 의미하며, 반대로 매개변수는 함수의 내부에서 해당 함수(앞의 예에서 log)로 전달된 값을 가리키기 위한 변수를 의미한다. 매개변수는 함수의 정의부분에 나열되어 있는 변수들을 의미하며, 전달인자는 함수를 호출할때 전달되는 실제 값을 의미한다. 이같은 의미를 명확히 하기 위해 매개변수는 변수(variable)로, 전달인자는 값(value)으로 보는 것이 일반적이다. 수학의 함수 안에 있는 x, y 같은 것이 매.. 2020. 5. 15.
var var var 키워드를 사용해서 변수를 선언하면 컴파일러가 자동으로 해당 변수의 형식을 지정해준다. var 키워드를 이용해서 변수를 선언하려면 반드시 선언과 동시에 초기화를 해줘야 한다. 그래야 컴파일러가 그 데이터를 보고 형식을 추론할 수 있다. var은 지역 변수로만 사용할 수 있다. 지역 변수 지역 변수는 코드 블록 안에서 선언되는 변수 코드 블록에서만 사용되고 코드 블록이 종료될 때 소멸된다. 프로그램의 다른 코드에서는 접근할 수 없다. 변수의 초기화 변수를 선언한 후 그 변수에 처음으로 어떠한 값을 저장하는 것을 말한다. 예문 var a = 3; //a는 int 타입 var b = "Hello" //b는 string 타입 2020. 4. 11.
프로퍼티 프로퍼티(Property) 프로퍼티는 C#에서 필드를 선언할 때 은닉성과 편의성 모두 지닌 기능이다. 은닉성: 객체 지향 언어에서 객체의 데이터를 보호하기 위해서 은닉성이 필요함. 편의성: 접근하기 쉬우나 데이터가 오염될 수 있음. 프로퍼티 선언 문법 class 클래스이름 { 데이터형식 필드이름; //프로퍼티에서 읽어올 값, 변경할 값을 필드(변수) 선언한 것 접근한정자 데이터형식 프로퍼티이름; { get { return 필드이름; } set { 필드이름 = value; } } } 접근자 get 접근자: 필드로부터 값을 읽어옴 set 접근자: 필드에 값을 할당함 읽기 전용 프로퍼티 set 접근자를 구현 안하면 된다. class Myclase { private int myField; public int M.. 2020. 3. 22.
while 반복문(Loop Statement) 특정 조건을 만족하는 동안 코드 또는 코드 블록을 계속 반복해서 실행하도록 하는 문장 C#에서는 while, do while, for, foreach 반복문을 제공함 while while문 형식1 while (조건식) 반복 실행할 코드 while문 형식2 while (조건식) { 반복 실행할 코드 } while문은 조건식이 참(true)인 동안 코드를 반복 실행함 조건식이 false값을 가지지 못한다면 프로그램은 while문에서 무한 루프함 간단한 조건을 가진 반복문을 작성할 땐 while문을 사용하기 for문은 while문 보다 더 정교하게 제어할 수 있음( 초기화식, 조건식, 반복식) 점프문을 이용하여 흐름을 끊고 실행 위치를 원하는 곳으로 변경 가능 점프문 bre.. 2020. 3. 22.
foreach 참고 링크 https://www.youtube.com/watch?v=l02qwb4myJg foreach 반복문을 인덱스 없이 구현 가능하다 foreach문은 배열이나 컬렉션을 반복 수행 해야할 때, 특히 값을 읽는 것에 초점을 맞춘다면 for문보다 빠르고 효율적이다. 코드가 깔끔하고 효율적이다. foreach (데이터 타입 변수명 in 배열 또는 컬렉션명) '데이터 타입 변수명'은 배열, 컬렉션에서 값을 하나씩 하나씩 받아서 저장하는 변수명이다. 배열, 컬렉션의 값을 변수명에 하나씩 저장하고 처음부터 마지막까지 자동으로 처리한다. 2020. 2. 19.