728x90
반응형
- 주제
>> ScriptableObject
>> 프리팹
>> GUID
- 공부내용
1. 개념
ScriptableObject : 게임의 설정, 데이터 테이블, 게임 오브젝트의 프로토타입을 저장하는 데 유용하다.
에디터에서 직접 데이터를 편집할 수 있어서 편하다.
프리팹: 재사용 가능한 게임 오브젝트의 템플릿으로, 한 번 정의하면 여러 곳에서 사용 가능하다.
GUID: 전 세계에서 고유한 식별자를 생성하는 방법이다.
한 마디로 하나 뿐인 고유 ID를 생성하여 게임 오브젝트에 부여할 수 있다.
2. 프리팹을 사용하여 게임 오브젝트를 생성하는 예제
2-1. ScriptableObject 클래스 작성
using UnityEngine;
[CreateAssetMenu(fileName = "NewObjectData", menuName = "ScriptableObjects/ObjectData", order = 1)]
public class ObjectData : ScriptableObject
{
public string objectName; // 오브젝트 이름
public GameObject prefab; // 프리팹
}
2-2. GameManager 클래스 작성
using UnityEngine;
public class GameManager : MonoBehaviour
{
public ObjectData objectData; // 오브젝트 데이터
void Start()
{
if (objectData != null && objectData.prefab != null)
{
Instantiate(objectData.prefab, Vector3.zero, Quaternion.identity); // 프리팹 인스턴스화
}
}
}
3. 새로운 ID로 게임 오브젝트를 생성하는 예제
3-1. ScriptableObject 클래스 작성
using UnityEngine;
[CreateAssetMenu(fileName = "NewObjectData", menuName = "ScriptableObjects/ObjectData", order = 1)]
public class ObjectData : ScriptableObject
{
public string objectName; // 오브젝트 이름
public string uniqueID; // 고유 ID
}
3-2. GameManager 클래스 작성
using UnityEngine;
public class GameManager : MonoBehaviour
{
public ObjectData objectData; // 오브젝트 데이터
void Start()
{
if (objectData != null)
{
GameObject newObject = new GameObject(objectData.objectName); // 새로운 게임 오브젝트 생성
newObject.AddComponent<MyComponent>().uniqueID = GenerateUniqueID(); // 새로운 컴포넌트 추가 및 고유 ID 설정
}
}
string GenerateUniqueID()
{
return System.Guid.NewGuid().ToString(); // 고유 ID 생성
}
}
public class MyComponent : MonoBehaviour
{
public string uniqueID; // 고유 ID
}
728x90
반응형
'🌐 유니티 (Unity)' 카테고리의 다른 글
Day 36 - AI 네비게이션 (0) | 2024.06.03 |
---|---|
Day 35 - JSON (게임 재시작 시, 최근 저장한 위치에서 시작) (0) | 2024.05.31 |
Day 33 - 3D 게임(해와 달) (0) | 2024.05.28 |
Day 32 - 동기와 비동기(Coroutine) (0) | 2024.05.27 |
Day 31 - 객체 지향 SOLID 원칙(표 정리, 예제) (0) | 2024.05.26 |