如何在Unity中將編號添加到對象?使用這個簡單的技巧!
在節(jié)點All_PathPoint_Parent下有多個子節(jié)點對象, 在unity編輯器模式中, 為每個子節(jié)點對象顯示一個編號, 從1開始.
可以使用Editor GUI Utility在編輯器窗口中為對象繪制GUI。在All_PathPoint_Parent節(jié)點的子對象上循環(huán),為每個子對象繪制GUI,顯示其編號。 下面是一個示例代碼片段:
void OnSceneGUI()
{
GameObject allPathPointParent = GameObject.Find("All_PathPoint_Parent");
if (allPathPointParent != null)
{
Transform[] pathPoints = allPathPointParent.GetComponentsInChildren<Transform>();
int count = 0;
foreach (Transform pathPoint in pathPoints)
{
if (pathPoint == allPathPointParent.transform)
continue;
count++;
Handles.Label(pathPoint.position, count.ToString());
}
}
}
這段代碼可以放在Unity腳本(.cs)文件中。您可以將其添加到項目中的任何腳本文件中,只要它繼承自MonoBehaviour或EditorWindow類,并確保腳本附加到場景中的對象上或打開Unity編輯器窗口。然后,將此腳本文件拖到場景中的任何對象上即可在編輯器模式下為對象顯示編號。
如果在Unity中使用上述代碼時找不到Handles,可能需要在腳本開頭添加以下命名空間:
using UnityEditor;
以下是完整代碼:
using UnityEditor;
using UnityEngine;
[ExecuteInEditMode]
public class DisplayNodeIndex : MonoBehaviour
{
void OnSceneGUI()
{
GameObject allPathPointParent = GameObject.Find("All_PathPoint_Parent");
if (allPathPointParent != null)
{
Transform[] pathPoints = allPathPointParent.GetComponentsInChildren<Transform>();
int count = 0;
foreach (Transform pathPoint in pathPoints)
{
if (pathPoint == allPathPointParent.transform)
continue;
count++;
Handles.Label(pathPoint.position, count.ToString());
}
}
}
}
可以將此代碼片段復制到您的Unity腳本文件中。確保腳本附加到場景中的對象上或打開Unity編輯器窗口。然后,將此腳本文件拖到場景中的任何對象上即可在編輯器模式下為對象顯示編號。