Unity
-
유니티 FSM 유한 상태 머신 - 몬스터 상태 관리Unity 2024. 3. 19. 18:36
안녕하세요 유니티 FSM을 이용한 몬스터 상태를 구현해봤습니다. [BaseState.cs] public abstract class BaseState { public abstract void StateEnter(); public abstract void StateExit(); public abstract void StateUpdate(); } 추상 클래스를 하나 만들어 줍니다. [EnemyState.cs] // 상태 종류 public enum EEnemyState { Tracking, Attack, Die, } #region 변수 private Enemy enemy; #endregion // 변수 #region 프로퍼티 public BaseState[] stateArray { get; private set..
-
유니티 웅크리기 구현 - 플레이어 웅크리기Unity 2024. 2. 3. 21:37
안녕하세요 오늘은 저번 시간에 진행한 플레이어 이동에 이어서 웅크리기를 구현했습니다. [인스펙터] 설정된 값 입니다. 함수를 작성하면서 값을 임의로 변경해 테스트 해보세요 모든 함수는 PlayerMovement.cs에서 작성되었습니다. [변수] 웅크리기 상태일때 속도 웅크리기를 눌렀을 때 플레이어 크기 웅크리기 시작 전 플레이어 크기 [상태] 각 움직임에 따른 상태를 만들어 줍니다. FSM으로 구현해도 좋습니다. [초기화] /** 초기화 */ private void Start() { rigid.freezeRotation = true; // 점프 초기화 PlayerResetJump(); crouchStartScaleY = this.transform.localScale.y; } 웅크리기 시작전 Scale Y..
-
유니티 움직임 구현 - 플레이어 이동 및 점프, 1인칭 시점Unity 2024. 1. 25. 11:06
안녕하세요 오늘은 유니티 1인칭 시점 플레이어 이동 및 점프를 구현해봤습니다. [하이어라키] PlayerModel은 캡슐 오브젝트를 사용했습니다 CameraPos는 PlayerModel의 머리 부분에 위치했습니다 Position (0, 0.74, 0) Orientation은 Position (0, 0 ,0) 입니다. CameraHolder는 Position (0, 1.5, 0) 입니다. [MoveCamera.cs] #region 변수 [SerializeField] private Transform cameraPosition; #endregion // 변수 #region 함수 /** 초기화 => 상태를 갱신한다 */ private void Update() { transform.position = camera..
-
유니티 인벤토리 - 인벤토리 시스템Unity 2024. 1. 23. 19:55
안녕하세요 오늘은 유니티 인벤토리 시스템을 만들어 봤습니다. ※ 현재는 클린코드를 지향하고 있지만 인벤토리 시스템을 제작할 당시에는 클린코드 존재를 잘 몰랐던 시기라 보시는데 불편함이 있을 수 있습니다. [인벤토리 프리팹] 인벤토리 프리팹을 만들어 줍니다. Inventory 객체에 Inventory.cs를 넣어줍니다. ToolTip 객체에 InventorySlotToolTip.cs를 넣어줍니다. DragSlot 객체에 DragSlot.cs를 넣어줍니다. [Inventory.cs] #region 변수 [Header("=====> 인벤토리 설정
-
유니티 카메라 확대,축소 / 마우스 드래그 - 카메라 이동 제한Unity 2024. 1. 16. 16:16
[내용] 안녕하세요 오늘은 저번에 공부했던 카메라 이동 및 확대/축소에서 이어집니다! 카메라가 배경이미지를 넘어 갈 수 없게 설정하고, 마우스 휠을 이용해 확대, 축소를 하게 구현해봤습니다 [변수] #region 변수 [SerializeField] private Camera mainCamera; [SerializeField] private float zoomSpeed; [SerializeField] private float dragSpeed; [SerializeField] private float minCamSize; [SerializeField] private float maxCamSize; [SerializeField] private SpriteRenderer mapRenderer; private b..
-
유니티 마우스 드래그 - 카메라 이동Unity 2024. 1. 14. 16:47
안녕하세요 오늘은 유니티 카메라를 마우스 드래그 한 위치로 이동 시키고, 확대/축소하는 방법입니다. [변수] #region 변수 [SerializeField] private Camera mainCamera; [SerializeField] private float dragSpeed; [SerializeField] private float zoomValue; [SerializeField] private float minCamSize; [SerializeField] private float maxCamSize; private Vector3 dragOrigin; #endregion // 변수 카메라 확대/축소 - 최대,최소 지정 카메라 확대/축소를 얼마나 할지 값 지정 [실행될 위치] /** 초기화 => 상태를..