inflearn logo
강의

講義

知識共有

【ユニティ3D】本番!サバイバルゲームの作成 - Advanced

伐採時の視線処理

thePlayerController의 값이 갑자기 null로 바뀌는 현상이 발생합니다

224

sun69300549

投稿した質問数 1

0

나무만 보면 공격이 되지 않는 버그가 생겨 CloseWeaponController.cs에서 Debug.Log로 확인 결과 Start()에선

thePlayerController = FindObjectOfType<PlayerController>();

에 의해서 값이 잘 들어가있는걸 확인했으나 TryAttack()에서는 갑자기 thePlayerController의 값이 null로 바뀌는 현상이 발생합니다.

일단은 위 코드를 TryAttack() 안으로 옮기니 일단은 버그가 해결되었습니다. 혹시 원인이 무엇인지 알 수 있을까요?

unity

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.
해해미님, thePlayerController의 값이 null로 바뀌는 현상에 대해 질문해주셨군요. FindObjectOfType<PlayerController>()Start()에서 호출했을 때는 값이 제대로 할당되었지만, TryAttack()에서는 null이 되는 경우, 몇 가지 가능한 원인이 있습니다.

  1. PlayerController 객체가 TryAttack()이 호출되기 이전에 어떤 이유로 인해 삭제되거나 비활성화되었을 수 있습니다. 이 경우, FindObjectOfType 메소드가 null을 반환하게 됩니다.
  2. Start()TryAttack()이 호출되는 순서에 문제가 있을 수 있습니다. 예를 들어, TryAttack()Start() 메소드보다 먼저 호출될 경우, 초기화되지 않은 상태에서 thePlayerController를 참조하려고 하여 null이 될 수 있습니다.

TryAttack() 내부로 코드를 옮겨 문제가 해결되었다면, PlayerController 인스턴스에 대한 참조가 제대로 유지되지 않는 문제 또는 호출 순서 문제일 가능성이 높습니다. 좀 더 정확한 원인을 파악하기 위해서는 PlayerController 객체의 생명주기와 TryAttack()이 호출되는 시점을 자세히 살펴보아야 할 것입니다.

이와 관련해 추가적인 질문이나 도움이 필요하시다면 언제든지 문의해주세요.

코드 파일

0

100

1

currentFireRate 질문

0

107

0

인벤토리 끄고 퀵슬롯 아이템 드래그앤 드랍시 공격

0

256

1

멀티로 개발하고 싶으면 어떤것을 알아야할까요?

0

360

1

유니티 3d 터레인 브러쉬 문제

0

527

1

moveposition 문제

0

361

2

navigation bake한 후 오류

0

290

1

무기 교체 오류

0

521

1

gun애니메이션이 손만 작동하고 총은 가만히 있어요

0

313

1

34:49 내용 생략 부분

0

500

0

고화질 서비스 안되나요..

0

371

1

바닥에 있는 아이템이 사라지지 않습니다

0

334

1

전체 프로젝트 파일 받을 수 있을까요?

0

412

1

질문 있습니다

0

285

0

움직이며 정조준을 하니까 총의 포지션 값이 이상해지네요;; 어떻게 해결해야되나요?

0

240

0

Quaternion 값은 왜 곱하나요?

0

312

0

Hand를 main camera에 넣으면 오류가 생깁니다.

0

242

0

웨폰 매니저 강의중 똑같은 내용 영상 중복됨

0

266

0

공격성을 띄고있는 동물이 죽어도 계속 쫓아옵니다.

0

324

1

시야각 구현이 제대로 안되는데 어떻게 해결해야하나요.

0

598

1

크로스헤어 문제

1

744

7

재장전을 하고나면 정조준 값은 똑같은데 위치가 바꿔저요

0

359

0

효과음 넣을 때 오류

0

447

1

강의 잘 듣고 있는데 질문거리가 많네요 ㅠㅠ

0

192

0