GameObject를 불러오기 위한 클래스.using UnityEngine;
public class Study : MonoBehaviour
{
public GameObject target; // 다른 GameObject 연결시
void Start()
{
Debug.Log("Start 호출");
// 내 GameObject 는 `gameObject`로 호출 가능
Debug.Log($"{gameObject.name} -> {target.name}");
}
}
Index가 추가되게 된다.Index로도 가능하다.using UnityEngine;
using UnityEngine.SceneManagemet;
public class SceneChanger : MonoBehaviour
{
void Update()
{
if (Input.GetKeyDown(KeyCode.P))
{
// GetActiveScene 메소드를 통해 현재 동작중인 씬에 대한 정보 획득 가능.
if (SceneManager.GetActiveScene().buildIndex == 0)
// 인덱스를 이용해서 변경
SceneManager.LoadScene(sceneBuildIndex: 1);
else
SceneManager.LoadScene(sceneBuildIndex: 0);
// SceneManager.LoadScene("ForTest"); // 이름을 이용해서 변경
}
}
}
클래스 변수는 접근 한정자 및 옵션에 따라 인스팩터에 보여줄 수 있으며, 보이는 값은 Unity Editor 에서 직접 변경 가능하다.
클래스 변수 앞에 대괄호와 함께 사용하는 옵션을 Attribute라고 부른다.
public class CubeController : MonoBehaviour
{
[Header("이것은 해더")]
[SerializeField] private int _health;
public int id;
[SerializeField][Range(0, 50)] private int _speed = 10;
[field:SerializeField] public int Mana { get; set; }
[Space(10)]
[Tooltip("이건뭐냐")] public GameObject target;
[TextArea()] public string Description;
}
SerializeField를 사용하면 인스팩터에 보이게 된다.SerializeField를 통해 보이게 할 수 있다.Attribute들
Prefab like ClassPrefab또한 Instance화를 시킬 수 있다.Assets 로 옮기면 Prefab 으로 변환된다.Assets 에서 Prefab 을 따로 생성해도 된다.Prefab 에는 여러 메타 데이터가 있기 때문에 협업시 주의 해야 한다.Instantiate() 를 이용해 생성 가능. 오버로딩 가능.Destory()를 통해 파괴 가능. 오버로딩 가능.조금 더 상세 내용은 추후 시간 날때 따로 정리 합니다