Unity 判断物体是否勾选static
需求
判断GameObject是否勾选static

最开始的判断方式为
if (gameObject.isStatic) {}
在编辑器模式下, 运行没有问题, 但是打包后, 无法使用。查看接口, 发现只能在编辑器下使用
//
// 摘要:
// Gets and sets the GameObject's StaticEditorFlags.
public bool isStatic { get; set; }
解决
目前通过判断物体的材质是否静态合批, 来达到目的
if (gameObject.GetComponent<MeshRenderer>().isPartOfStaticBatch) {}
在Unity中,初始使用`gameObject.isStatic`来判断物体是否为静态的方案在打包后失效,因为该属性只能在编辑器模式下使用。为了解决此问题,开发者转而通过检查GameObject的MeshRenderer组件是否参与静态合批 (`GetComponent<MeshRenderer>().isPartOfStaticBatch`) 来间接判断物体是否被设置为静态。这种方法在打包后依然有效,能够满足在运行时判断物体静态状态的需求。
1537

被折叠的 条评论
为什么被折叠?



