无法更改 material 的颜色,Unity
Can't change color of the material, Unity
首先,我正在关注 youtube 上的 Unity C# 教程,我正在努力了解为什么我的代码不起作用,基本上我使用的是带有“void OnCollisionEnter(Collision collision)”的脚本将 gameObject material 颜色更改为红色,但没有显示更改也没有显示错误,我的对象(球体)有一个刚体,我在它上面使用的 material 有一个标准着色器,它是渲染模式它是不透明的,我把它设为蓝色
我在脚本中使用的代码:
void OnCollisionEnter(Collision collision)
{
gameObject.GetComponent<Renderer>().material.color = Color.red;
}
它什么都不做,尝试更改着色器、代码颜色,但我仍然不知道为什么在 Unity 上没有更改
您确定正在调用该方法吗?当此 collider/rigidbody 开始与另一个 rigidbody/collider 联系时触发 OnCollisionEnter
。
检查球体碰撞的物体和球体本身是否存在collider/rigidbody
此外,请尝试使用 Debug.Log()
以确保代码已被触发。
我在 Start() 方法中检查了你的行,它有效。问题是别的
首先确保它在函数内运行。为此使用 Debug.Log ()。如果函数正确执行,请使用它。
private void OnCollisionEnter(Collision collision)
{
Debug.Log("On Collision Enter: "+ collision.gameObject.name);
GetComponent<MeshRenderer>().material.color = Color.red;
}
首先,我正在关注 youtube 上的 Unity C# 教程,我正在努力了解为什么我的代码不起作用,基本上我使用的是带有“void OnCollisionEnter(Collision collision)”的脚本将 gameObject material 颜色更改为红色,但没有显示更改也没有显示错误,我的对象(球体)有一个刚体,我在它上面使用的 material 有一个标准着色器,它是渲染模式它是不透明的,我把它设为蓝色
我在脚本中使用的代码:
void OnCollisionEnter(Collision collision)
{
gameObject.GetComponent<Renderer>().material.color = Color.red;
}
它什么都不做,尝试更改着色器、代码颜色,但我仍然不知道为什么在 Unity 上没有更改
您确定正在调用该方法吗?当此 collider/rigidbody 开始与另一个 rigidbody/collider 联系时触发 OnCollisionEnter
。
检查球体碰撞的物体和球体本身是否存在collider/rigidbody
此外,请尝试使用 Debug.Log()
以确保代码已被触发。
我在 Start() 方法中检查了你的行,它有效。问题是别的
首先确保它在函数内运行。为此使用 Debug.Log ()。如果函数正确执行,请使用它。
private void OnCollisionEnter(Collision collision)
{
Debug.Log("On Collision Enter: "+ collision.gameObject.name);
GetComponent<MeshRenderer>().material.color = Color.red;
}