[ 프리팹 ]
Unity 게임 엔진에서 사용되는 게임 오브젝트를 재사용 가능하고 관리하기 쉽게 만들기 위한 템플릿
프리팹의 변경사항은 모든 인스턴스에 즉시 반영되므로, 일관성을 유지하고 일괄적인 업데이트를 쉽게 할 수 있다.
프리팹은 레벨 디자인, 재사용 가능한 게임 요소 (캐릭터, 아이템, 장애물 등) 의 생성, 프로토타이핑 등에 주로 사용
[ Instantiate 함수 ]
Unity에서 제공하는 메소드로, 주어진 원본 개체의 복사본을 새로 생성하고 이를 반환한다
이 함수는 주로 게임 오브젝트, 즉 캐릭터, 아이템, 프로젝타일 등을 동적으로 게임 세계에 추가할 때 사용
원본 개체의 모든 컴포넌트와 그 프로퍼티를 복사하여 새 게임 오브젝트를 생성
이 함수를 통해 생성된 게임 오브젝트는 독립적이며, 원본 개체에 대한 변화는 이에 영향을 주지 않는다
그리고 원본 게임 오브젝트, 위치 및 회전 정보를 인자로 받을 수 있다
[ 공격 시스템과 총알 만들기 ]
PlayerInputController.cs
발사를 누가 해야할지 생각해보면 플레이어가 해야한다
TopDownController.cs
PlayerInputController에서 변경해주었던 IsAttacking 변수를 바탕으로 작동
TopDownShooting.cs
실제로 슈팅이 일어나는 부분을 정의
① TopDownController 의 OnLookEvent 에 Aim하는 부분을 등록
② TopDownController 의 OnAttackEvent에 Shoot하는 부분을 등록 및 생성
Arrow 만들고 프리팹
현재 상태
어떠한 입력도 하지 않았는데 화살이 나타난다
PlayerInputController에서 Onfire 메서드 안에 있는 Isattacking은
불값을 가지는데 이 것을 등록하지 않아서
Isattacking을 조건으로 걸음으로서 누르고 있다는걸 인지시켜야 한다.
이렇게 하면 마우스를 클릭할 때 or 키보드를 입력할 때에만 화살이 등장한다
만약 이렇게 했을 때, 화살이 나타나지 않았다면
이벤트 함수는 정해진 이름을 사용해야한다.
화살이 나타나지 않았던 이유는 OnFire가 아닌 Onfire으로 해놨었더라는..
---------------------------
M1 > 화살의 발사방향을 Arm의 회전에 맞게 조정 해 보기
M2 > 화살이 앞으로 나갈 수 있게 만들어 보기
M3 > 화살이 벽에 닿은 경우 사라지게 만들어 보기
'Unity > Knowledge' 카테고리의 다른 글
float.MaxValue; Time.deltaTime? (0) | 2024.05.14 |
---|---|
Prefes와 Static 차이점 (0) | 2024.05.12 |
조준(Aim) 시스템 구축 (0) | 2024.05.09 |
충돌 처리와 맵 구성 (0) | 2024.05.09 |
구조와 설계 샘플 (0) | 2024.05.09 |