Editor编辑器扩展在Scene View添加按钮和logo
Posted avi9111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Editor编辑器扩展在Scene View添加按钮和logo相关的知识,希望对你有一定的参考价值。
最近发现一个不得了的lego项目,
可以很简单的做出,马里奥64位那样的横版3D过关游戏
其实这个项目也在unity官方模板出现很久了,只是一直在深山修炼,孤陋寡闻
看了这个项目的logo很是喜欢
那么我们今天就来做一个
1)首先就是继承Editor Window
2)然后这样。。。。。。。。是不行的
3)原来要Editor。OnSceneUI,但我们还是直接用更内核的。 SceneView
void OnEnable()
SceneView.duringSceneGui += SceneGUI;
void OnDisable()
SceneView.duringSceneGui -= SceneGUI;
4,一开始scenView 不好用,后来发现小哥的文章获得答案(下面参考链接)
一开始小哥也是用错的,各种Canvas GUIContent方案尝试,后来他成功了
void SceneGUI(SceneView view)
//错的
if (GUILayout.Button("fdsafadsf"))
//还是错的
GUI.Button(new Rect(10,10,100,100),"11111111");
5)
// 绑定duringSceneGui等代码略,详见github工程
private void SceneGUI(SceneView view)
Handles.BeginGUI();
6) 哦,对了,后来用回,继承Editor,的OnSceneGUI,根本没成功。。。。。
不知道是不是新版本Unity2020 的问题
7)最终完整代码
SceneView 的GUI,只是和普通 OnGui()略有不同,GUILayout, EditorGUILayout这些帮助类,只能少用了
// copyright (c) by Sidney9111@gmail.com
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class LolToolsWindows : EditorWindow
[MenuItem("Tools/Lol/Animation Window")]
public static void ShowWnd()
GetWindow<LolToolsWindows>().Show();
void OnEnable()
SceneView.duringSceneGui += SceneGUI;
private void OnGUI()
if (GUILayout.Button(("创建 Animation in Scene")))
var go = GameObject.Find("LolSceneView");
if (go == null)
go = new GameObject("LolSceneView");
if (go.GetComponent<LolSceneMono>() == false)
go.AddComponent<LolSceneMono>();
Selection.activeObject = go;
void OnDisable()
SceneView.duringSceneGui -= SceneGUI;
void SceneGUI(SceneView view)
//c参考:https://zhuanlan.zhihu.com/p/124269658
Handles.BeginGUI();
GUILayout.BeginArea(view.position); // 规定显示区域为屏幕大小
if (GUILayout.Button("fdsafadsf"))
GUI.Button(new Rect(10,10,100,100),"11111111");
GUILayout.EndArea();
Handles.EndGUI();
参考:
unity Scene View扩展之显示常驻GUI - 知乎
以上是关于Editor编辑器扩展在Scene View添加按钮和logo的主要内容,如果未能解决你的问题,请参考以下文章
Add an Editor to a Detail View 将编辑器添加到详细信息视图
如何从sks文件加载节点,然后应用在Scene Editor中定义的操作
Unity Amplify Shader Editor-编辑器扩展开发Canvas框架