unity3d编辑器界面扩展,编辑状态下显示选择对象的所有脚本组件代码内容
来源:互联网 发布:网络审查 论文 编辑:程序博客网 时间:2024/05/22 12:10
转载自:http://blog.csdn.net/andyhebear/article/details/47833383
using UnityEngine;using UnityEditor;using System;using System.Collections;using System.Collections.Generic;using System.Diagnostics;[CanEditMultipleObjects()][CustomEditor(typeof(Transform), true)]public class SelectObjShowCodeSnapEditor : Editor { // Use this for initialization bool btnclick, quickOpen = false; Vector2 scrollPos=new Vector2(0,0); public override void OnInspectorGUI(){base.DrawDefaultInspector(); MonoBehaviour[] scripts=(target as Transform).gameObject.GetComponents<MonoBehaviour>(); if (scripts != null && scripts.Length > 0) { // GUILayout.BeginVertical("Box"); quickOpen = EditorGUILayout.Foldout(quickOpen, new GUIContent("--- Frequent functions ---")); if (quickOpen) { AddButton("Awake", ""); AddButton("Start", ""); AddButton("FixedUpdate ", ""); AddButton("OnEnable / OnDisable", ""); GUILayout.Space(20.0f); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(GUILayout.Width(145.0f)); AddButton("OnCollisionEnter", "Collision collision"); AddButton("OnCollisionStay", "Collision collision"); AddButton("OnCollisionExit", "Collision collision"); GUILayout.EndVertical(); GUILayout.BeginVertical(GUILayout.Width(145.0f)); AddButton("OnTriggerEnter", "Collider other"); AddButton("OnTriggerStay", "Collider other"); AddButton("OnTriggerExit", "Collider other"); GUILayout.EndVertical(); GUILayout.EndHorizontal(); GUILayout.Space(20.0f); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(GUILayout.Width(145.0f)); AddButton("OnMouseEnter"); AddButton("OnMouseOver"); AddButton("OnMouseExit"); GUILayout.EndVertical(); GUILayout.BeginVertical(GUILayout.Width(145.0f)); AddButton("OnMouseDown"); AddButton("OnMouseDrag"); AddButton("OnMouseUp"); GUILayout.EndVertical(); GUILayout.EndHorizontal(); GUILayout.Space(20f); AddButton("Update"); AddButton("LateUpdate"); GUILayout.Space(20); AddButton("OnPreCull OnBecameVisible/OnBecameInvisible OnWillRenderObject"); AddButton("OnPreRender OnRenderObject OnPostRender OnRenderImage ", ""); AddButton("OnGUI"); AddButton("OnDrawGizmos "); GUILayout.Space(10); AddButton("OnDestroy"); } GUILayout.EndVertical(); // //----- // if (GUILayout.Button("--- code ---")) { btnclick = !btnclick; //btnclick = EditorGUILayout.Foldout(btnclick, new GUIContent("脚本列表")); } if (btnclick) { scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.MinWidth(400), GUILayout.MinHeight(400)); EditorGUILayout.BeginVertical(); int c = scripts.Length; for (int i = 0; i < c; i++) { string scriptName, scriptPath; scriptName = GetAssetName(scripts[i], out scriptPath); GUILayout.Label("[" + i.ToString() + "]: " + scriptName); if (GUILayout.Button("Open")) { Process.Start(Application.dataPath + "/../" + scriptPath); } GUILayout.Space(4); string scriptTxt = System.IO.File.ReadAllText(scriptPath); GUILayout.TextArea(scriptTxt); GUILayout.Space(4); } EditorGUILayout.EndVertical(); EditorGUILayout.EndScrollView(); } }} void AddButton(string add, string arg = "", string argType = "") { GUI.SetNextControlName("FocusFix"); if (GUILayout.Button(add, "OL Plus", GUILayout.MinWidth(80.0f))) { //AddFunction(add, arg, argType); GUI.FocusControl("FocusFix"); } } public string GetAssetName(UnityEngine.MonoBehaviour asset, out string assetPath) { assetPath = AssetDatabase.GetAssetPath(MonoScript.FromMonoBehaviour(asset)); //assetPath = AssetDatabase.GetAssetPath(asset.GetInstanceID()); string csname= assetPath.Remove(0, assetPath.IndexOf('/') + 1); return csname; }// Update is called once per frame}
原文:http://blog.csdn.net/andyhebear/article/details/47833383
0 0
- unity3d编辑器界面扩展,编辑状态下显示选择对象的所有脚本组件代码内容
- Unity3D 改变对象下所有子对象的组件属性
- 扩展Unity3D编辑器的脚本模板
- 扩展Unity3D编辑器的脚本模板
- 控制unity对象下所有子物体的显示状态
- Unity3D拖尾组件在Ui界面下正常显示
- Unity3D:移除某个组件下的所有子对象(清空列表)
- [Unity]Unity3D编辑器插件扩展和组件扩展
- 界面编辑查找的内容
- 动态设置Button、ImageView等组件在不同状态下的背景/前景显示效果。 扩展下的话可以前景/背景的显示效果可以使用网络图片。
- 显示编辑框的内容
- MultiStateView不同的状态下显示不同的界面
- HTML编辑器内容代码太长无法显示的问题
- 为什么使用百度编辑器时 前台代码不能放在 class<table >中 如果放进去的话,会发生 百度编辑的内容显示不出来
- rcp(插件开发)如何保存显示在编辑区的所有编辑器
- rcp(插件开发)如何获取显示在编辑区的所有编辑器及获取其中之一
- 对unity3d编辑器进行扩展的教程
- Unity3d 编辑器扩展系列-MenuItem的使用
- 《深入理解Java虚拟机》第2版笔记(完整)
- 自定义UIAlertView及简单的回调函数使用说明
- 839 合并
- Flume-ng 自定义sink实现和属性注入
- Linux脚本牛刀小试
- unity3d编辑器界面扩展,编辑状态下显示选择对象的所有脚本组件代码内容
- 黑马程序员——001——初识Java
- UVA 4855 Hyper Box 斐波那契
- 第二天
- 要认清自己的位置——在我断开之前
- 【ODPS】UDF基础
- linux版本FTP下载
- iOS Provisioning Profile(Certificate)与Code Signing详解
- windbg 查看参数应用方法