我无法理解为什么方法OnDrawGizmos()
在Start()
方法和Update()
方法中都没有被调用时执行,但它在我运行Unity项目时执行。< / p>
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour
{
public Transform grounder;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnDrawGizmos(){
Gizmos.color = Color.white;
Gizmos.DrawSphere (grounder.position, 1);
}
}
答案 0 :(得分:3)
顾名思义,OnDrawGizmozs
由统一引擎调用。它是一个在实现MonoBehaviour的类上调用的消息函数。文档中的例外情况:
描述
如果你想绘制同样的小玩意,可以实现OnDrawGizmos 可选择的,总是被画出来的。
http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnDrawGizmos.html
这意味着您不需要自己调用此功能。
答案 1 :(得分:2)
因为Unity在实现MonoBehaviour的类上调用它,根据documentation。