我试图在光标运行时通过脚本更改颜色,它工作到 75%:是唯一不改变颜色的部分,我不知道为什么。所有 4 个零件都使用相同的材料,命名为“ ”。我尝试了什么:
Mesh_top
cursormaterial
- 通过引用更改颜色
cursormaterial
- 通过获取组件更改颜色
SkinnedMeshRenderer
- 尝试使用
ProptertyBlock
在所有三种情况下,我得到了相同的结果。唯一有效的是在点击播放之前我可以改变颜色,这将改变整个光标的颜色。在运行时更改它仅适用于 4 个部分中的 3 个......'
- 编辑 -
public SkinnedMeshRenderer cursorRendererOne, cursorRendererTwo, cursorRendererThree, cursorRendererFour;
private MaterialPropertyBlock _propBlock;
public Material material;
void Start()
{
_propBlock = new MaterialPropertyBlock();
}
public void OnInputDown(InputEventData eventData)
{
if (!isActivated)
{
//#1
material.color = Color.blue;
//#2
cursorRendererOne.sharedMaterial.color = Color.blue;
//#3
cursorRendererOne.GetPropertyBlock(_propBlock);
_propBlock.SetColor("_Color", Color.blue);
cursorRendererOne.SetPropertyBlock(_propBlock);
cursorRendererTwo.SetPropertyBlock(_propBlock);
cursorRendererThree.SetPropertyBlock(_propBlock);
cursorRendererFour.SetPropertyBlock(_propBlock);
isActivated = true;
}