문제가 생겨서 고칠 수없는 문제가 있습니다.Unity 2D - 스크립트 활성화시 Null 참조
나는 AIManager 스크립트를 가지고 있습니다. 여기에는 모든 통제와 내 적의 움직임이 있습니다. 그런 다음 EnemyBasic 스크립트가 있습니다. 이것은이 적의 AI 행동을 나타냅니다. 얼마나 자주 공격 할 것인가?
Raycasts에 관한 튜토리얼을 사용하여 내 적을 시야에 넣을 수있었습니다. 이것은 효과가 있었고 적군은 나를 공공 장소에서 테스트했습니다.
이제 문제가되는 부분입니다. EnemyBasic 스크립트를 비활성화하면 적이 한 곳에 머무르게됩니다. 그의 시야에 들어선 후 EnemyBasic 스크립트를 활성화하여 공격을 시작할 수 있습니다.
는 NullReferenceException : 개체 Sight.Raycasting (의 인스턴스로 설정되지 않았습니다 개체 참조) (자산/Sight.cs에서 : 21) Sight.Update() (불행히도, 내 코드와 함께,이 오류를 제공합니다 자산/Sight.cs에서 :
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Sight : MonoBehaviour {
public Transform sightStart, sightEnd;
public bool spotted = false;
void Update() {
Raycasting();
}
void Raycasting()
{
spotted = Physics2D.Linecast(sightStart.position, sightEnd.position, 1 << LayerMask.NameToLayer("Player"));
if (spotted)
{
/*---> LINE OF ERROR */ gameObject.GetComponent<EnemyBasic>().enabled = true;
}
}
}
어떤 아이디어 : 13)
여기 내 코드입니다. 나는 화합에 처음이므로 무언가 어리 석다는 높은 기회가 있습니다. 감사합니다.
오류를 두 번 클릭하고 오류의 원인이되는 코드 줄을 게시하십시오. – Programmer
완료. 나는 화살을 더했다. – TheNewbie
확인. 1. 위의'Sight' 스크립트가 붙어있는 GameObject의 이름은 무엇입니까? 2. EnemyBasic 스크립트가 붙어있는 GameObject의 이름은 무엇입니까? – Programmer