C# 在unity中使用颜色数据类型
我试图在游戏开始时改变物体的颜色,但是我运行程序时什么也没发生。当我使用C# 在unity中使用颜色数据类型,c#,visual-studio,unity3d,C#,Visual Studio,Unity3d,我试图在游戏开始时改变物体的颜色,但是我运行程序时什么也没发生。当我使用Player.GetComponent().material.color=color.red时,该程序可以运行,但我不想每次更改颜色时都重写该行 public GameObject Player; private Color Plcol; // Start is called before the first frame update void Start() { P
Player.GetComponent().material.color=color.red
时,该程序可以运行,但我不想每次更改颜色时都重写该行
public GameObject Player;
private Color Plcol;
// Start is called before the first frame update
void Start()
{
Plcol = Player.GetComponent<Renderer>().material.color;
Plcol = Color.red;
}
公共游戏对象玩家;
专用彩色Plcol;
//在第一帧更新之前调用Start
void Start()
{
Plcol=Player.GetComponent().material.color;
Plcol=颜色。红色;
}
由于材质颜色使用的是PInvoke(调用C++),因此您需要直接指定,而不是为变量指定颜色,然后对其进行更改
public GameObject Player;
void Start()
{
ChangeColor(Color.red);
}
public void ChangeColor(Color newColor)
{
Player.GetComponent<Renderer>().material.color = newColor;
//or should work as well
var material = Player.GetComponent<Renderer>().material;
material.color = newColor;
}
公共游戏对象玩家;
void Start()
{
变色(颜色为红色);
}
公共void ChangeColor(颜色newColor)
{
Player.GetComponent().material.color=newColor;
//或者也应该起作用
var material=Player.GetComponent().material;
material.color=newColor;
}
创建一个名为SetPlayerColor的函数,并将不想重新键入的行放入其中。您的代码现在更干净、更自我记录。您只需替换Plcol
的字段值即可。。。这不会改变材料的颜色。。。如果你说,例如,var x=transform.position.x;x=5代码>。。。为什么要更改变换位置?