如何在Unity的Animator中通过事件切换Mesh Renderer的启用状态
实现方案
你的代码逻辑本身是正确的,按以下步骤配置即可实现需求:
- 将
toggleMesh脚本挂载到你需要控制显隐的网格对应的GameObject上 - 确认
Renderer变量正确赋值:- 如果目标Mesh Renderer和脚本挂载在同一个GameObject,现有
GetComponent<Renderer>()逻辑可以正常获取组件,启动时会默认隐藏网格 - 如果Mesh Renderer和脚本不在同一个物体,删除
Start方法中的rend = GetComponent<Renderer>();代码,直接在Inspector面板把目标网格的Mesh Renderer组件拖到脚本的rend参数栏完成赋值
- 如果目标Mesh Renderer和脚本挂载在同一个GameObject,现有
- 打开Animator对应的动画剪辑,选中你已经在时间轴一半位置添加的事件点,在Inspector面板的Function下拉列表中,选中
toggleMesh类下的toggleMeshR()方法即可
如果需要实现每次调用事件切换显隐状态,可以修改toggleMeshR方法为如下逻辑:
public void toggleMeshR() { rend.enabled = !rend.enabled; }
注意修改完预制体的相关配置后,点击Inspector右上角的Apply按钮保存预制体变更,避免后续实例化预制体时配置丢失。
内容的提问来源于stack exchange,提问作者Nick Beaumont
相关产品推荐
相关产品推荐

