[CreateAssetMenu(fileName = "GunData", menuName = "Scriptable Objects/GunData")] //어트리뷰트
public class GunData : ScriptableObject
{
}
CreateAssetMenu : 에셋 메뉴 생성 어트리뷰트
Project 창의 + 버튼을 누르면 맨 밑 항목에 Scriptable Object 에 에셋 생성 버튼이 생성된다.
public으로 스크립트에 선언하면 해당 에셋에 게임오브젝트를 드래그로 할당이 가능해진다.
특정 오브젝트가 많이 생기면 이 에셋을 복사하여 여러 무기를 만들 수 있게되는 것이다.
fileName : 메뉴 이름
"Scriptable Objects/GunData" : /는 ‘계층 구조’를 의미한다.
스크립터블 오브젝트 메뉴로 생성한 ‘데이터 에셋’은 이것도 에셋이기 때문에 해당 스크립트의 이름을 데이터형으로 선언하면 인스펙터에서 할당할 수 있게된다.
[CreateAssetMenu(fileName = "GunData", menuName = "Scriptable Objects/GunData")]
public class GunData : ScriptableObject
{
public AudioClip shootClip;
public AudioClip reloadClip;
public float damage = 25f;
public int startAmmoRemain = 100;
public int magCapacity = 25; //탄창 용량
public float timeBetFire = 0.12f; //발사 간격
public float reloadTime = 1.8f;
public float fireDistance = 50f; //사정거리
}
//GunScript
public GunData gunData;