空引用异常-从另一个脚本引用布尔

时间:2019-06-06 18:32:30

标签: c# unity3d exception reference null

我正在使用当前脚本引用公共布尔。现在,我对其进行了设置,以便每当检测到bool本身时屏幕就会抖动。但是我只希望当从另一个脚本(布尔“ hitrun”)中调用布尔时,它会抖动。第二个我删除了!= null部分,我得到了null引用异常,并且在我指定的条件下它不会动摇。我应该为null输入什么?一切正常,直到我取出Update函数中当前没有的!= null。

我已经尝试过使用null和方括号之类的各种不同组合。在这一点上,我只是猜测并希望自己猜对了。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cameraShake : MonoBehaviour {

private characterController runner;
[HideInInspector]
public bool shaker = false;

void Update()
{
    if (runner.hitrun != null) { 
        StartCoroutine(Shake(0.02f,0.02f));
        }
}

void Twitchy()
{
    StartCoroutine(Shake(0.13f,0.135f));    
}

public IEnumerator Shake (float duration, float magnitude)
{
    Vector3 originalPos = transform.localPosition;

    float elapse = 0.0f;
    while (elapse < duration) 
    {
        float x = Random.Range (-1f, 1f) * magnitude;
        float y = Random.Range (-1f, 1f) * magnitude;

        transform.localPosition = new Vector3 (x, y, originalPos.z);
        elapse += Time.deltaTime;
        yield return null;
    }
        transform.localPosition = originalPos;
}
}

NullReferenceException:对象引用未设置为对象cameraShake.Update()的实例(在Assets / scripts / cameraShake.cs:13处)

有一个很大的不同,就是您的源没有我的代码。空引用异常错误不是普遍存在的,并且取决于存在的错误。我之前已经解决了null问题,而我无法解决这一问题。否则我不会问。

0 个答案:

没有答案