Unity - A计划(一年有效期) 扫二维码继续学习 二维码时效为半小时

(66评价)
价格: 1299.00元
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

在Stealth秘密行动中主角进入摄像机和激光射线门不触发警报
塔里木河丶发起了问答2019-03-20
2
回复
455
浏览

在进入激光门的时候不会触发警报,主角和激光门已经设置了collider

报错内容如下:

NullReferenceException: Object reference not set to an instance of an object
Laser.OnTriggerStay (UnityEngine.Collider other) (at Assets/Scripts/Laser.cs:58)

报错代码:
 

void OnTriggerStay(Collider other)
    {
        if (other.tag == "Player")
        {

              
             GameController._intance.SeePlayer(other.transform);
        }

下面是GameController的代码:

public class GameController : MonoBehaviour
{

    public static GameController _intance;


    public bool alermON = false;
    public Vector3 lastPlayerPostion = Vector3.zero;

    public AudioSource audio1;





    void Awake()
    {
        alermON = false;


    }





    void Update()
    {
        AlermLight._intance.alermON = this.alermON;

        if (alermON)
        {
            PlaySiren();
        }
        else
        {
            StopSiren();
        }


    }
    public void SeePlayer(Transform player)
    {
        alermON = true;
        lastPlayerPostion = player.position;
    }

    private void PlaySiren()
    {
        if (!audio1.isPlaying)
        {
            audio1.Play();

        }

    }
    private void StopSiren()
    {
        audio1.Stop();

    }


}

 

所有回复
发表回复
你还没有登录,请先 登录或 注册!