Unity 3D Object引用未设置为对象问题的实例

时间:2014-03-05 04:14:12

标签: unity3d nullreferenceexception unityscript

由于一些奇怪的原因,我在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;

}
}

2 个答案:

答案 0 :(得分:0)

找到空引用非常容易,只需检查错误消息并查看错误发生的行。

但是看看你的代码,它可以在这一行:

renderer.material.mainTexture = blue;

问题是renderer中没有materialrenderer成分Monobehaviour

它也可以在这里:

guiScore.text= "Score: " + score;

如果此guiScore中未设置Monobehaviour,则会出现此问题。

答案 1 :(得分:0)

renderer.material.mainTexture也可以为Null,因为材质指向的着色器没有“_MainTexture”参数。您可以通过查看材料并查看是否存在“基础(RGB)”字段来验证这一点:

Making sure the material has a _MainTexture property