유니티 공부(4)
-
New InputSystem (2)
이제는 적용방법을 이야기해보겠다. 설정은 완료했으니 이제 적용을 해야된다. 현재 하이라키뷰에 있는 오브젝트들중에 입력값을 받아야 하는 오브젝트에다 Player Input 컴포넌트를 추가해야한다. 추가한 후에 Actions는 현재 우리가 InputSystem을 생성한 에셋을 넣고 DafultMap 우리가 작동해야하는 ActionMpas를 넣으면된다. 여기서 Behavior부분이 있는데 여기서 분류를 할수있다. Send Messages , Broadcast Messages : 유니티의 Send Messages 기능을 사용 Invoke Unity Events, Invoke C Sharp Events : C#의 이벤트 기능을 사용 Send Massages 특정 키가 들어오면 특정 함수를 호출해주는 방식 Broa..
2024.03.24 -
New InputSystem (1)
유니티의 InputSystem은 원래 Input을 string을 받아서 입력을해야해서 항상 Update로 입력을 해야했지만 InputAction은 유니티에서 새로 내논 시스템으로 업데이트식이 아닌 이벤트로 받아오는 형식이라 더 효율적이라 볼수있다. 지금은 내가 프로젝트를 하나 만들려고 비슷한 게임의 강의를 듣고있는데 이 강의는 좀 오래된거라 InputAction을 안써서 한번 고쳐보도록 하겠다. 인풋 시스템은 PackageManager에서 InputSystem을 받고 Assets - Create - InputAction을 눌러 생성할수 있다. 여기서는 Auto Save를 체크하면 자동으로 키설정이 세이브가 된다. 그러면 이런창이 뜰탠데 Actions에서 +키를 누르고 새로 빌딩을 하면 매핑을 할수있는 녹..
2024.03.24 -
유니티 FSM (유한 상태 기계)
유한 상태 기계 (FSM) 유한 상태 기계 패턴은 State패턴을 이용한 더 심화된 개념으로 주어지는 모든 시간에서 처해 있을 수 있는 유한 개의 상태를 가지고 주어지는 입력에 따라 어떤 상태에서 다른 상태로 전환시키거나 출력이나 액션이 일어나게 하는 장치 또는 그런 장치를 나타낸 모델 유한 상태 기계 바탕에 깔린 아이디어는 객채의 행동을 쉽게 처리할 수 있는 클래스 또는 상태들로 분해 하는것 (출처 유튜브 고박사의 유니티 노트) 현재 AI 적 몬스터 행동 패턴이다. 이런식으로 스위치문 또는 if문으로 하면 제약 사항들이 많아질테고 만약에 행동 패턴이 많아지면 확장할때 그리고 수정할때 직관적이지 않아 쉽게 설계하지 못할것이고 스위치문 if문의 조건들이 많아지면 미세하게 처리 속도가 느려질수도 있다. 그래..
2024.03.13 -
프리팹을 생성하고 쓸때 주의할점 (GetComponent를 쓰는이유)
내가 게임 오브젝트를 프리팹으로 저장하고 프리팹에서 그 오브젝트를 생성한후 쓰고있는데 문제가 생겼고 그 문제가 생기는 이유를 찾았고 메모하기 위해서 글을 쓴다. 원래 프리팹이란 이런거다 할수도 있고 이런것도 몰랐냐 할수도 있지만 나처럼 이런 실수가 있고 왜 문제가 생겼는지 알려주기위해 이 글을 적는다. 주관적으로 이해를하고 설명하는거기 때문에 틀린부분도 있을수도 있다는걸 알려주고싶다. 일단 프리팹이란 뭘까 유니티의 공식 홈페이지에 따르면 게임 오브젝트를 생성, 설정 및 저장할 수 있으며, 해당 게임 오브젝트의 모든 컴포넌트, 프로퍼티 값, 자식 게임 오브젝트를 재사용 가능한 에셋으로 만들 수 있습니다. 프리팹 에셋은 씬에 새로운 프리팹 인스턴스를 만들기 위한 템플릿 역할을 합니다. 말 그대로 프리팹은 하..
2023.11.23