UnityEditor: 拖拽预制体在场景视图中显示预览
UnityEditor: 拖拽预制体在场景视图中显示预览
本文介绍如何在UnityEditor中实现拖拽预制体时在场景视图中显示预制体预览的功能。
步骤:
- 在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/lNxK 著作权归作者所有。请勿转载和采集!