스크립트가 활성화 되었을 때 실행될 메서드.
예를들어 스크립트가 활성화 되었을 때 플레이어 조작이 가능하게 하려면,
public class Movement : MonoBehaviour
{
[SerializeField] InputAction thrust;
private void OnEnable()
{
thrust.Enable();
}
}
AwakeAwake는 MonoBehaviour가 로드되면 한 번만 호출됩니다.GetComponent, DontDestroyOnLoad, 초기 데이터 로드 등.OnEnableAwake 후에 호출됩니다.Awake 이후에 호출됩니다.EventManager.Subscribe).| 특징 | Awake | OnEnable |
|---|---|---|
| 호출 시점 | GameObject가 처음 로드될 때 1회 호출 | GameObject가 활성화될 때마다 호출 |
| 활성화 여부 | 비활성화 상태여도 호출됨 | 활성화될 때만 호출됨 |
| 사용 빈도 | 주로 초기화 코드에 사용 | 활성화 상태 관리나 이벤트 등록에 사용 |
| 호출 순서 | Awake → OnEnable | OnEnable은 Awake 이후 호출 |
[SerializeField] InputAction thrust;
Update()와 달리 유니티에서 물리적 연산을 할때 Update 대신 사용하면 좋다.
오브젝트의 로컬 방향으로 힘을 주고싶다. 그렇다면 사용할 메서드.
rb.AddRelativeForce(Vector3.up * thrustStrength * Time.fixedDeltaTime);
이런식으로 쓰면됨. Time.fixedDeltaTIme은 FixedUpdate()를 사용해서 deltaTime 대신 쓰는거다.
float rotationInput = rotation.ReadValue<float>();
이거는 좌우 어떤걸 눌렀는지 같은곳에 쓰면 됨.
올해도 화이팅했고 내년에도 열심히 달려보자~!