由于一些奇怪的原因,我在Paddle类中的If语句一直给我一个错误。错误显示“NullReferenceException:对象引用未设置为对象的实例”。我无法解决这个问题。我需要从Ball Class到Paddle类获得“isBlue”的布尔值。一旦它在Paddle类中,我需要使用该布尔值来转换纹理。任何帮助将不胜感激。感谢
//Paddle class
#pragma strict
var blue: Texture;
var isBlue: boolean = false;
Public var newBall : Ball;
function Start () {
}
function Update () {
newBall = GetComponent(Ball);
isBlue = newBall.isBlue;
if(isBlue == true)
{
renderer.material.mainTexture = blue;
}
}
球类
var blue : Texture;
var isBlue : boolean = false;
function OnCollisionEnter(col : Collision){
if(col.collider.name == "Brick3"){
Destroy(col.gameObject);
score += 10;
guiScore.text= "Score: " + score;
renderer.material.mainTexture = blue;
isBlue = true;
}
}
答案 0 :(得分:0)
找到空引用非常容易,只需检查错误消息并查看错误发生的行。
但是看看你的代码,它可以在这一行:
renderer.material.mainTexture = blue;
问题是renderer
中没有material
或renderer
成分Monobehaviour
。
它也可以在这里:
guiScore.text= "Score: " + score;
如果此guiScore
中未设置Monobehaviour
,则会出现此问题。
答案 1 :(得分:0)
renderer.material.mainTexture
也可以为Null,因为材质指向的着色器没有“_MainTexture”参数。您可以通过查看材料并查看是否存在“基础(RGB)”字段来验证这一点: