Per*_*zim 5 unity-game-engine augmented-reality hololens mrtk
我尝试在光标运行时通过脚本更改颜色,效果达到 75%:
\n
\nMesh_top是唯一不改变颜色的部分,我不知道为什么。\n所有 4 个部分都使用相同的材料,名为“ cursormaterial”。\n我尝试过:
cursormaterialSkinnedMeshRendererProptertyBlock
在所有三种情况下我都得到了相同的结果。唯一有效的是在点击播放之前我可以更改颜色,这将更改整个光标的颜色。在运行时更改它仅适用于 4 个部分中的 3 个...\xc2\xb4
- 编辑 -
\n\n public SkinnedMeshRenderer cursorRendererOne, cursorRendererTwo, cursorRendererThree, cursorRendererFour;\nprivate MaterialPropertyBlock _propBlock;\npublic Material material;\n\nvoid Start()\n{\n _propBlock = new MaterialPropertyBlock();\n}\n\npublic void OnInputDown(InputEventData eventData)\n{\n if (!isActivated)\n {\n //#1\n material.color = Color.blue;\n //#2\n cursorRendererOne.sharedMaterial.color = Color.blue;\n //#3\n cursorRendererOne.GetPropertyBlock(_propBlock);\n _propBlock.SetColor("_Color", Color.blue);\n cursorRendererOne.SetPropertyBlock(_propBlock);\n cursorRendererTwo.SetPropertyBlock(_propBlock);\n cursorRendererThree.SetPropertyBlock(_propBlock);\n cursorRendererFour.SetPropertyBlock(_propBlock);\n isActivated = true;\n }\nRun Code Online (Sandbox Code Playgroud)\n\n\n
这是一个“Bug”(也许是有意为之?)。
打开Animation窗口 ( CTRL+ 6)
并在层次结构中选择CursorVisual
如果您现在转到名为的动画,CursorWaitingAnim您可以看到 top_mesh 颜色有一个关键帧。
此单个关键帧导致该图块的颜色无法在运行时更改。原因是动画制作器随后 OnInputDown运行,因此它会恢复任何关键帧属性的更改。
因此,如果您不需要等待动画,只需删除该关键帧即可。
=> 您可以再次在运行时操纵颜色!
或者,您可以将其替换为一个,而不是修复颜色,只需禁用它,SkinnedMeshRenderer它基本上具有或多或少相同的效果,但不会改变颜色:
| 归档时间: |
|
| 查看次数: |
723 次 |
| 最近记录: |