Unity編輯器擴充chapter1

來源:互聯網
上載者:User

標籤:ora   chap   immediate   collect   eve   reference   idt   遊戲   game   

Unity編輯器擴充chapter1

  unity通過提供EditorScript API 的方式為我們提供了方便強大的編輯器擴充途徑。學好這一部分可以使我們學會編寫一些工具來提高效率,甚至可以自製一些小的外掛程式應用的項目工程中去,達到複用的目的。今天首先建立一個新情境產生的功能表項目,產生的情境已經綁定好需要的遊戲對象及指令碼。

Tips:1.官方API

   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<GameObject>();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<Level>();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 }

效果:

Unity編輯器擴充chapter1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.