unity物体销毁时 Gizmos.DrawWireSphere函数报错ArgumentException: Gizmo drawing functions can only be used in OnDrawGizmos and OnDrawGizmosSelected.
UnityEngine.Gizmos.DrawWireSphere (UnityEngine.Vector3 center, System.Single radius)
ArgumentException: : Gizmo drawing functions
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注朋友你好,根据你的描述,当你在Unity中销毁物体时,使用
Gizmos.DrawWireSphere函数会报错ArgumentException: Gizmo drawing functions can only be used in OnDrawGizmos and OnDrawGizmosSelected.这个错误是因为你在不正确的地方调用了Gizmos绘图函数。在Unity中,Gizmos绘图函数(如DrawWireSphere)应该在以下两个特定的函数中使用:
1.OnDrawGizmos
2. OnDrawGizmosSelected这些函数通常位于MonoBehaviour类的派生类中。你应该在这两个函数中调用Gizmos绘图函数来绘制场景中的调试辅助图形。
如果你想在物体销毁时绘制WireSphere,你可以在MonoBehaviour派生类中的OnDestroy函数中手动绘制,或者在OnDrawGizmos和OnDrawGizmosSelected函数中进行条件判断,只在特定情况下绘制WireSphere。
以下是一个示例代码片段,展示了如何在OnDrawGizmosSelected函数中进行条件判断并绘制WireSphere:
using UnityEngine; public class YourScript : MonoBehaviour { public float radius = 1f; private void OnDrawGizmosSelected() { // 检查物体是否被选中 if (!Selection.Contains(gameObject)) return; // 绘制WireSphere Gizmos.color = Color.red; Gizmos.DrawWireSphere(transform.position, radius); } }确保将以上代码放置在正确的MonoBehaviour派生类中,并在Unity编辑器中选择该物体后,你应该能够在场景视图中看到WireSphere的绘制。
希望能帮到你,并且帮忙给回答点个采纳哦,谢谢啦!解决 无用评论 打赏 举报