653138de6912cdefe2783e3eda0976733aeaf67c6c0b43db136269f0eafed82d


653138de6912cdefe2783e3eda0975737f4c8f380b97a0507c6349bab299bc


위에 스크립트 이름은 PlayerCollision.cs,

아래는 PlayerManager.cs


PlayerCollision에서 PlayerManager 를 불러오려고


private PlayerManager playerManager;

를 쓴 뒤

void start에

playerManager = FindObjectOfType<PlayerManager>();

를 입력해줬어요.


그런데


if (collision.transform.tag == "Obstacle")

{

playerManager.currentHP = 0f;

PlayerManager.isGameOver = true; // playerManager PlayerManager 대소문자 따라 다르네, 둘 다 같은 cs에서 가져오는거 같아보이는데,

Destroy(player);

}


여기서 playerManager.currentHP = 0f;는 잘 돼서, 그 전에 쓴 PlayerManager.isGameOver = true; 얘도 PlayerManager 대신 변수인 playerManager로 바꿔도 똑같이 적용되지 않을까 싶었는데 오류가 뜨더라고요.


질문 1) 안 되는 이유가 currentHP는 그냥 변수, isGameOver는 private void Awake() 안에 있어서 그런건가요?


질문 2) 사실 아직도 저 파란색 (void Start, private void Awake 등) 이랑 초록색 글자, 그리고 그냥 하얀색 글자의 명칭과 이름을 모르겠어요.
얘네들 명칭이 따로 있나요?



그리고 스파게티 코딩이라는게 정말 자연스럽게 만들어지더라고요. 괜히 유명한 단어가 아니란걸 알게 됐습니다.