博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity编辑器扩展chapter1
阅读量:4979 次
发布时间:2019-06-12

本文共 2049 字,大约阅读时间需要 6 分钟。

Unity编辑器扩展chapter1

  unity通过提供EditorScript API 的方式为我们提供了方便强大的编辑器扩展途径。学好这一部分可以使我们学会编写一些工具来提高效率,甚至可以自制一些小的插件应用的项目工程中去,达到复用的目的。今天首先创建一个新场景生成的菜单项,生成的场景已经绑定好需要的游戏对象及脚本。

Tips:1.官方

   2.编辑器扩展脚本都需放在Editor文件夹下,Editor的层级和数目没有要求

 

EditorUtil.cs :编辑器扩展类,向外部提供编辑器扩展方法。

  

1 using UnityEngine; 2 using System.Collections; 3 using UnityEditor; 4 using UnityEditor.SceneManagement; 5  6 namespace RunAndJump.LevelCreator  //为防止类名冲突,使用namespace时一个好的解决方案 7 { 8     public class EditorUtil 9     {10 11         //创建新场景12         public static void NewScene()13         {14             //该方法后续过时,被下面方法替代:EditorApplication.SaveCurrentSceneIfUserWantsTo();15             EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo();//当前场景有未保存的东西是,弹出对话框提醒是否保存当前场景16             //该方法后续过时,被下面方法替代:EditorApplication.NewScene();17             EditorSceneManager.NewScene(NewSceneSetup.EmptyScene);18         }19 20 21         //清空场景22         public static void CleanScene()23         {24             GameObject[] allObjects = Object.FindObjectsOfType
();25 26 foreach (GameObject go in allObjects)27 {28 GameObject.DestroyImmediate(go);29 }30 }31 32 //创建新关卡33 public static void NewLevel()34 {35 NewScene();36 CleanScene();37 38 //可以在创建新关卡时添加上必要的游戏对象39 //add something...40 41 GameObject levelGo = new GameObject("Level");42 levelGo.transform.position=Vector3.zero;43 levelGo.AddComponent
();44 45 }46 }47 }

MenuItems.cs:菜单项控制类,负责在菜单项中调用编辑器方法

1 using UnityEngine; 2 using System.Collections; 3 using UnityEditor; 4  5 namespace RunAndJump.LevelCreator 6 { 7  8     //菜单项管理类,用来控制扩展方法在菜单项中显示 9     public class MenuItems10     {11         [MenuItem("Tools/LevelCreator/NewLevelScene %q") ]12         private static void NewLevel()13         {14             EditorUtil.NewLevel();15         }16     }17 }

效果:

转载于:https://www.cnblogs.com/Firepad-magic/p/6241780.html

你可能感兴趣的文章
js获取服务端IP及端口及协议
查看>>
MongoDB 集合操作命令-3
查看>>
Save a bricked Samsung Note 3 and do extraction
查看>>
PO VO BO DTO POJO DAO的解释
查看>>
夺命雷公狗---DEDECMS----32dedecms电影网评价星星功能的实现
查看>>
Python hashlib
查看>>
Linux下gcc的安装
查看>>
python之路-类、socket编程
查看>>
在 ML2 中配置 OVS vlan network - 每天5分钟玩转 OpenStack(136)
查看>>
J.U.C并发框架源码阅读(五)Semaphore
查看>>
微信小程序_(视图)简单的scroll-view容器
查看>>
滤波、形态学腐蚀与卷积(合集)
查看>>
spring mvc 单元测试示例
查看>>
JS window对象的top、parent、opener含义
查看>>
[AngularJS] Lazy loading Angular modules with ocLazyLoad
查看>>
Python-面向对象(一)-Day7
查看>>
解决报错:error: The requested URL returned error: 401 Unauthorized while accessing
查看>>
Matplotlib——第一章轻松画个图
查看>>
Executor 框架
查看>>
ubuntu安装配置jdk
查看>>