본문 바로가기

카테고리 없음

7주차 - Scriptable Object에 대한 고찰 + 입문 주차 피드백

728x90

Scriptable Object?

Unity 게임 엔진에서 사용되는 특별한 종류의 데이터 컨테이너, 원하는 데이터를 저장하고 공유, 에셋으로 저장해 여러곳에 참조해 사용

데이터와 코드를 분리하여 유연성과 재사용성을 높일 수 있습니다.

 

보통 데이터로만 사용.

ScriptableObject 클래스를 상속받는 스크립트 클래스를 작성해야 합니다.

해당 스크립트를 에셋으로 생성하여 프로젝트 내에서 사용할 수 있습니다

 

어트리뷰트를 사용해 에셋 폴더내에 마우스 오른쪽 클릭으로 스크립터블 오브젝트를 생성할  수 있습니다.

[CreateAssetMenu(fileName = "", menuName = "", order = num)]

fileName - 생성되는 파일 이름
menuName - 메뉴 이름, ex) "TopDownController/Attacks/Ranged"
order - 메뉴 순서

 

스크립터블 오브젝트를 상속받는 스크립트를 작성하고, 이 스크립터블 오브젝트를 에셋 으로 편리하게 어느곳에서든 참조해 사용할 수 있습니다.

그러나 이 스크립터블 오브젝트의 값을 바꾸게 될경우 이를 참조하는 모든 오브젝트의 값이 바뀌기 때문에 주의.

 

 

입문 주차 피드백.

DontDestroyOnLoad를 사용하여 씬이 전환되더라도 데이터를 가지고있는 오브젝트를 남기도록 하자.

Object Pool을  사용해 반복해서 사용해야하는 오브젝트를 재사용하도록 하자.

  • 발사체 또는 이펙트등과 같이 반복적으로 생성되고 제거되는 오브젝트들을 사전에 오브젝트풀로 만들어 사용할 수 있게 설계를 해보도록 하자.

여러 오브젝트를 실시간으로 체크할때는 Physics 를 사용하는것이 유용하지만  타겟이 명확하고 수가 적다면 두 물체의 거리를 측정하는 것이 좀더 나을수 있다.

728x90