私には問題があります。私は修正できないようです。Unity 2D - スクリプト起動時のNull参照
私はAIManagerスクリプトを持っています。これにはすべてのコントロールと敵の動きの仕方があります。 それから私はEnemyBasicスクリプトを持っています。これは、この敵のAI動作を表します。どのくらい頻繁に攻撃するか。
Raycastsに関するチュートリアルを使用してみました。これは私の敵の視力を実現するのに役立ちます。これはうまくいって、私の敵は私を見つけて、公然のブールでテストしました。
問題のある部分。 EnemyBasicスクリプトを無効にすると、敵は1つの場所にとどまります。彼の視界に入ると、私は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