Unity/C# 2022. 2. 22. 17:26[Unity] FSM패턴

유한 상태 기계 (Finite State Machine) 정의 컴퓨터 프로그램을 설계할 때 쓰이는 모델이다. 컴퓨터 내에 유한한 상태를 가지는 기계가 있다고 가정하고, 컴퓨터는 오로지 하나의 상태만 갖고 있을 수 있으며 각 상태별 동작과 상태끼리의 전이에 대한 내용을 설계하게 된다. 유니티의 Animator처럼 한State에 머무르며 행동을하고 다른State로 전이(Transition)을 하며 행동을 변경하는 시스템이라고 생각하면 편하다. 이미지 출처 : https://boycoding.tistory.com/262 AI를 코딩으로 만들때 이 패턴이 유용한데, 기존에 애용하던 패턴은 Switch문을 활용한 이런식이다. 방법 1 // FSM을 활용한 몬스터 컨트롤러 public abstract class M..

Unity/C# 2022. 1. 28. 10:29[Unity, C#] Vector3 회전

Vector3(1, 0, 0)을 y출으로 45도 회전한다면 vector3 v = Vector3.right; v *= Quaternion.AngleAxis(-45, Vector3.up); //또는 v *= Quaternion.Euler(0, -45, 0); 처음 생각으로는 Vector3에 회전시키는 확장메소드가 있을줄알았는데 Quaternion이였다.

Unity/C# 2022. 1. 28. 10:18[C#]선택적 매개변수로 Color사용 / ?? 및 ??=, ?. 연산자

선택적 매개변수로 Color를 사용하려할때 private void MyColor(Color _color = Color.magenta) { } 이런식으로 기본값을 넣을려하면 컴파일타입 상수가 아니라면서 오류를 낸다. public GraphicsLine(Point startPoint, Point endPoint, Color? color = null, double width = 1.0) { StartPoint = startPoint; EndPoint = endPoint; Color = color ?? Colors.Black; Width = width; } 해결법은 이런식으로 작성하면 된다. 출처 : https://minecode.tistory.com/65 여기서 나오는 ?연산자와 ??연산자에대한 설명은 C# ..

Unity/C# 2022. 1. 26. 13:43[Unity] 카메라 장애물 회피

요런기능을 말함 필요한 변수와 함수 public float cameraSphereRadius = 0.2f; public float cameraCollisionOffset = 0.2f; public float maximunCollisionOffest = 2.2f; private void HandleCameraCollision(float maxDistance, Vector3 startPos) { targetPos = 0f; RaycastHit hit; Vector3 dir = (transform.position - startPos).normalized; Debug.DrawLine(startPos, startPos + dir * maxDistance, Color.red, 0.5f); if(Physics.Sph..

Unity/C# 2022. 1. 21. 10:43Unity ParticleSystem Trigger모듈

Unity - Manual: Triggers module docs.unity3d.com 트리거모듈은 Collision모듈과는 달리 월드객체랑 충돌감지를 할수없다. 저 리스트에 들어간 객체만 가능하다. 대신 보이는것처럼 Inside, Outside, Enter, Exit 4가지 경우의 콜백을 받을 수있다. 위에 링크된 유니티 Docs를 보면 알수있듯이 OnParticleTrigger()에서 트리거에 닿은 각 파티클들의 포지션을 알아낼수있다. 이 포지션에서 Physics.OverlapSphere() 같은 함수로 내가 원하는 오브젝트와도 닿았는지 확인할 수 있다. 위와같은 스킬에 사용했다. 박스 트리거를 두고 그곳에 원하는 파티클이 닿으면 파티클의 위치에서 OverlapSphere()로 근처에 원하는 객체가 ..

Unity/C# 2022. 1. 17. 10:45[C#] params 가변인자 매개변수

출처: https://blockdmask.tistory.com/317 [개발자 지망생] [C#] params 가변인자 매개변수에 대해서. 안녕하세요. BlockDMask 입니다. 오늘은 가변인자 매개변수 params 키워드에 대해서 알아보도록 하겠습니다. 날씨가 오락가락하네요. 1. C# params 가변 인자 매개변수란? ▼ C# params 설명과 기능 : 우리가 함수.. blockdmask.tistory.com 안녕하세요. BlockDMask 입니다. 오늘은 가변인자 매개변수 params 키워드에 대해서 알아보도록 하겠습니다. 날씨가 오락가락하네요. 1. C# params 가변 인자 매개변수란? ▼ C# params 설명과 기능 : 우리가 함수의 매개변수를 넘길때 1,2,3개 이렇게 개수를 지정해주..

image