UnityEditor: 拖拽预制体在场景视图中显示预览

本文介绍如何在UnityEditor中实现拖拽预制体时在场景视图中显示预制体预览的功能。

步骤:

  1. 在Unity编辑器中打开一个场景,选择一个空的GameObject,右键菜单中选择'Create Empty'。
  2. 点击'Create Empty'后,在Hierarchy窗口中会出现一个新的GameObject,将其重命名为'PrefabHolder'。
  3. 在Project窗口中找到要拖拽的Prefab,并将其拖拽到'PrefabHolder'下面。
  4. 选中'PrefabHolder',在Inspector窗口中点击'Add Component',并选择'PrefabHolderEditor'。
  5. 实现'PrefabHolderEditor'脚本,在脚本中重写'OnSceneGUI'方法,在该方法中使用Handles.DrawPrefab函数绘制Prefab的样子。
  6. 在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);
        }
    }
}

注意事项:

  1. 'PrefabHolder'必须为一个空的GameObject,否则拖拽的Prefab将无法在Scene窗口下显示。
  2. 'PrefabHolderEditor'脚本中必须重写'OnSceneGUI'方法,否则拖拽的Prefab也无法在Scene窗口下显示。
UnityEditor: 拖拽预制体在场景视图中显示预览

原文地址: https://www.cveoy.top/t/topic/lNxK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录