UnityEditor实现拖拽Prefab时在Scene窗口下显示Prefab样子
UnityEditor实现拖拽Prefab时在Scene窗口下显示Prefab样子的方法如下:
-
在Unity编辑器中打开一个场景,选择一个空的GameObject,右键菜单中选择“Create Empty”。
-
点击“Create Empty”后,在Hierarchy窗口中会出现一个新的GameObject,将其重命名为“PrefabHolder”。
-
在Project窗口中找到要拖拽的Prefab,并将其拖拽到“PrefabHolder”下面。
-
选中“PrefabHolder”,在Inspector窗口中点击“Add Component”,并选择“PrefabHolderEditor”。
-
实现“PrefabHolderEditor”脚本,在脚本中重写“OnSceneGUI”方法,在该方法中使用Handles.DrawPrefab函数绘制Prefab的样子。
-
在Unity编辑器中按下Play按钮,将场景切换到运行模式,即可在Scene窗口下看到拖拽的Prefab的样子。
示例代码:
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(PrefabHolder))]
public class PrefabHolderEditor : Editor
{
private void OnSceneGUI()
{
PrefabHolder prefabHolder = (PrefabHolder)target;
if (prefabHolder.prefab != null)
{
Handles.DrawPrefab(prefabHolder.transform.position, prefabHolder.prefab);
}
}
}
注意事项:
-
“PrefabHolder”必须为一个空GameObject,否则拖拽的Prefab将无法在Scene窗口下显示。
-
“PrefabHolderEditor”脚本中必须重写“OnSceneGUI”方法,否则拖拽的Prefab也无法在Scene窗口下显示。
原文地址: https://www.cveoy.top/t/topic/zvB 著作权归作者所有。请勿转载和采集!