본문 바로가기

수업/Unity 2주 프로젝트 및 공부

Unity 프로젝트 및 공부 7일차

<오늘 진행할 일>

무기교체


<오늘의 공부>

1. static을 많이 사용할 수 록 메모리가 낭비된다.

 

2. [RequireComponent(typeof( ))]

: 인스펙터 창에 [SerializeField]로 된 GunController를 한번 넣으면 뺄 수 없게 만든다.

[RequireComponent(typeiof(Gameobject))]
public class ClassA : MonoBehavior
{
   //인스펙터 창에 게임오브젝트를 가져다 넣으면 뺄 수 없음
   [SerializeField] private Gameobject gameobject;
   //인스펙터 창에 트랜스폼을 가져다 넣어도 뺄 수 있음
   [SerializeField] private Transform transform;
}

 

3. Dictionary

: 인스펙터창에서 오브젝트를 배열에 담고, 그 배열을 Dictionary에 담아 사용

→ 특정 오브젝트에 대한 내용을 배열에서 찾을 때, 각 인덱스 안에 무엇이 들어있는지 알고있어야 하는데

Dictionary에 담아 사용하면 이름으로 찾을 수 있다.

//인스펙터 창에 여러개의 오브젝트를 드래그해서 담는다.
[SerializedField] private Gameobject[] gameobjects;

//딕셔너리 생성
private Dictionary<string, Gameobject> objDic = new Dictionary<string, Gameobject>();

//딕셔너리에 담기
objDic.Add("오브젝트0", gameobjects[0]);
objDic.Add("오브젝트1", gameobjects[1]);
objDic.Add("오브젝트2", gameobjects[2]);
//클래스로 총의 정보들을 담아 사용한다면 string부분에 이름을 꺼내와 for문을 돌려 간편하게 사용가능

//딕셔너리에서 꺼내기
//ex) 오브젝트1 꺼내기
Gameobject gameobj = objDic["오브젝트1"];
//배열이었다면 gameobjects[1]로 사용할 수 있지만 명시적이지 않아 관리를 더 수월하게 하기위해 딕셔너리를 사용한다.

 


<오늘 진행한 일>

 

- 무기교체

: F1키로 맨손, F2키로 총을 바꿔 들수 있게 구현했습니다.

Weapone매니저 스크립트를 이용해 보이는 무기(손/총)의 교체의 내용을 관라하기 쉽게 구성하였습니다.

 

 

 


- 참고영상 케이디의 유튜브

https://www.youtube.com/playlist?list=PLUZ5gNInsv_Nzex8Cvxce_1zjUf0cNWY9

 

유니티 강좌 [3D FPS 서바이벌 생존] - YouTube

유니티 강좌 - 3D 게임 제작 스킬을 배워보는 강좌

www.youtube.com