Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. using UnityEngine;
  2. using UnityEngine.U2D;
  3. using UnityEditor;
  4. namespace UnityEditor.U2D
  5. {
  6. static internal class MenuItems
  7. {
  8. const int k_SpriteAssetMenuPriority = 1;
  9. const int k_SpriteAtlasAssetMenuPriority = k_SpriteAssetMenuPriority + 11;
  10. const int k_SpriteGameObjectMenuPriority = 1;
  11. const int k_PhysicsGameObjectMenuPriority = 2;
  12. const int k_SpriteMaskGameObjectMenuPriority = 6;
  13. [MenuItem("Assets/Create/2D/Sprites/Triangle", priority = k_SpriteAssetMenuPriority)]
  14. static void AssetsCreateSpritesTriangle(MenuCommand menuCommand)
  15. {
  16. ItemCreationUtility.CreateAssetObjectFromTemplate<Texture2D>("Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/Triangle.png");
  17. }
  18. [MenuItem("Assets/Create/2D/Sprites/Square", priority = k_SpriteAssetMenuPriority)]
  19. static void AssetsCreateSpritesSquare(MenuCommand menuCommand)
  20. {
  21. ItemCreationUtility.CreateAssetObjectFromTemplate<Texture2D>("Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/Square.png");
  22. }
  23. [MenuItem("Assets/Create/2D/Sprites/Circle", priority = k_SpriteAssetMenuPriority)]
  24. static void AssetsCreateSpritesCircle(MenuCommand menuCommand)
  25. {
  26. ItemCreationUtility.CreateAssetObjectFromTemplate<Texture2D>("Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/Circle.png");
  27. }
  28. [MenuItem("Assets/Create/2D/Sprites/Capsule", priority = k_SpriteAssetMenuPriority)]
  29. static void AssetsCreateSpritesCapsule(MenuCommand menuCommand)
  30. {
  31. ItemCreationUtility.CreateAssetObjectFromTemplate<Texture2D>("Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/Capsule.png");
  32. }
  33. [MenuItem("Assets/Create/2D/Sprites/Isometric Diamond", priority = k_SpriteAssetMenuPriority)]
  34. static void AssetsCreateSpritesIsometricDiamond(MenuCommand menuCommand)
  35. {
  36. ItemCreationUtility.CreateAssetObjectFromTemplate<Texture2D>("Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/IsometricDiamond.png");
  37. }
  38. [MenuItem("Assets/Create/2D/Sprites/Hexagon Flat-Top", priority = k_SpriteAssetMenuPriority)]
  39. static void AssetsCreateSpritesHexagonFlatTop(MenuCommand menuCommand)
  40. {
  41. ItemCreationUtility.CreateAssetObjectFromTemplate<Texture2D>("Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/HexagonFlatTop.png");
  42. }
  43. [MenuItem("Assets/Create/2D/Sprites/Hexagon Pointed-Top", priority = k_SpriteAssetMenuPriority)]
  44. static void AssetsCreateSpritesHexagonPointedTop(MenuCommand menuCommand)
  45. {
  46. ItemCreationUtility.CreateAssetObjectFromTemplate<Texture2D>("Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/HexagonPointedTop.png");
  47. }
  48. [MenuItem("Assets/Create/2D/Sprites/9-Sliced", priority = k_SpriteAssetMenuPriority)]
  49. static void AssetsCreateSprites9Sliced(MenuCommand menuCommand)
  50. {
  51. ItemCreationUtility.CreateAssetObjectFromTemplate<Texture2D>("Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/9Sliced.png");
  52. }
  53. internal class DoCreateSpriteAtlas : ProjectWindowCallback.EndNameEditAction
  54. {
  55. public int sides;
  56. public override void Action(int instanceId, string pathName, string resourceFile)
  57. {
  58. var spriteAtlasAsset = new SpriteAtlasAsset();
  59. UnityEditorInternal.InternalEditorUtility.SaveToSerializedFileAndForget(new Object[] { spriteAtlasAsset }, pathName, true);
  60. AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate);
  61. }
  62. }
  63. static private void CreateSpriteAtlas()
  64. {
  65. var icon = EditorGUIUtility.IconContent<SpriteAtlasAsset>().image as Texture2D;
  66. DoCreateSpriteAtlas action = ScriptableObject.CreateInstance<DoCreateSpriteAtlas>();
  67. ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, action, "New Sprite Atlas.spriteatlasv2", icon, null);
  68. }
  69. [MenuItem("Assets/Create/2D/Sprite Atlas", priority = k_SpriteAtlasAssetMenuPriority)]
  70. static void AssetsCreateSpriteAtlas(MenuCommand menuCommand)
  71. {
  72. if (EditorSettings.spritePackerMode == SpritePackerMode.SpriteAtlasV2)
  73. CreateSpriteAtlas();
  74. else
  75. ItemCreationUtility.CreateAssetObject<SpriteAtlas>("New Sprite Atlas.spriteatlas");
  76. }
  77. static GameObject CreateSpriteRendererGameObject(string name, string spritePath, MenuCommand menuCommand)
  78. {
  79. var go = ItemCreationUtility.CreateGameObject(name, menuCommand, new[] {typeof(SpriteRenderer)});
  80. var sr = go.GetComponent<SpriteRenderer>();
  81. sr.sprite = AssetDatabase.LoadAssetAtPath<Sprite>(spritePath);
  82. return go;
  83. }
  84. [MenuItem("GameObject/2D Object/Sprites/Triangle", priority = k_SpriteGameObjectMenuPriority)]
  85. static void GameObjectCreateSpritesTriangle(MenuCommand menuCommand)
  86. {
  87. CreateSpriteRendererGameObject("Triangle", "Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/Triangle.png", menuCommand);
  88. }
  89. [MenuItem("GameObject/2D Object/Sprites/Square", priority = k_SpriteGameObjectMenuPriority)]
  90. static void GameObjectCreateSpritesSquare(MenuCommand menuCommand)
  91. {
  92. CreateSpriteRendererGameObject("Square", "Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/Square.png", menuCommand);
  93. }
  94. [MenuItem("GameObject/2D Object/Sprites/Circle", priority = k_SpriteGameObjectMenuPriority)]
  95. static void GameObjectCreateSpritesCircle(MenuCommand menuCommand)
  96. {
  97. CreateSpriteRendererGameObject("Circle", "Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/Circle.png", menuCommand);
  98. }
  99. [MenuItem("GameObject/2D Object/Sprites/Capsule", priority = k_SpriteGameObjectMenuPriority)]
  100. static void GameObjectCreateSpritesCapsule(MenuCommand menuCommand)
  101. {
  102. CreateSpriteRendererGameObject("Capsule", "Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/Capsule.png", menuCommand);
  103. }
  104. [MenuItem("GameObject/2D Object/Sprites/Isometric Diamond", priority = k_SpriteGameObjectMenuPriority)]
  105. static void GameObjectCreateSpritesIsometricDiamond(MenuCommand menuCommand)
  106. {
  107. CreateSpriteRendererGameObject("Isometric Diamond", "Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/IsometricDiamond.png", menuCommand);
  108. }
  109. [MenuItem("GameObject/2D Object/Sprites/Hexagon Flat-Top", priority = k_SpriteGameObjectMenuPriority)]
  110. static void GameObjectCreateSpritesHexagonFlatTop(MenuCommand menuCommand)
  111. {
  112. CreateSpriteRendererGameObject("Hexagon Flat-Top", "Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/HexagonFlatTop.png", menuCommand);
  113. }
  114. [MenuItem("GameObject/2D Object/Sprites/Hexagon Pointed-Top", priority = k_SpriteGameObjectMenuPriority)]
  115. static void GameObjectCreateSpritesHexagonPointedTop(MenuCommand menuCommand)
  116. {
  117. CreateSpriteRendererGameObject("Hexagon Pointed-Top", "Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/HexagonPointedTop.png", menuCommand);
  118. }
  119. [MenuItem("GameObject/2D Object/Sprites/9-Sliced", priority = k_SpriteGameObjectMenuPriority)]
  120. static void GameObjectCreateSprites9Sliced(MenuCommand menuCommand)
  121. {
  122. var go = CreateSpriteRendererGameObject("9-Sliced", "Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/9Sliced.png", menuCommand);
  123. var sr = go.GetComponent<SpriteRenderer>();
  124. if (sr.drawMode == SpriteDrawMode.Simple)
  125. {
  126. sr.drawMode = SpriteDrawMode.Tiled;
  127. sr.tileMode = SpriteTileMode.Continuous;
  128. }
  129. }
  130. [MenuItem("GameObject/2D Object/Physics/Static Sprite", priority = k_PhysicsGameObjectMenuPriority)]
  131. static void GameObjectCreatePhysicsStaticSprite(MenuCommand menuCommand)
  132. {
  133. var go = ItemCreationUtility.CreateGameObject("Static Sprite", menuCommand, new[] {typeof(SpriteRenderer), typeof(BoxCollider2D), typeof(Rigidbody2D)});
  134. var sr = go.GetComponent<SpriteRenderer>();
  135. if (sr.sprite == null)
  136. sr.sprite = AssetDatabase.LoadAssetAtPath<Sprite>(
  137. "Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/Square.png");
  138. var rigidBody = go.GetComponent<Rigidbody2D>();
  139. rigidBody.bodyType = RigidbodyType2D.Static;
  140. var boxCollider2D = go.GetComponent<BoxCollider2D>();
  141. boxCollider2D.size = sr.sprite.rect.size / sr.sprite.pixelsPerUnit;
  142. }
  143. [MenuItem("GameObject/2D Object/Physics/Dynamic Sprite", priority = k_PhysicsGameObjectMenuPriority)]
  144. static void GameObjectCreatePhysicsDynamicSprite(MenuCommand menuCommand)
  145. {
  146. var go = ItemCreationUtility.CreateGameObject("Dynamic Sprite", menuCommand, new[] {typeof(SpriteRenderer), typeof(CircleCollider2D), typeof(Rigidbody2D)});
  147. var sr = go.GetComponent<SpriteRenderer>();
  148. if (sr.sprite == null)
  149. sr.sprite = AssetDatabase.LoadAssetAtPath<Sprite>(
  150. "Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/v2/Circle.png");
  151. var rigidBody = go.GetComponent<Rigidbody2D>();
  152. rigidBody.bodyType = RigidbodyType2D.Dynamic;
  153. }
  154. [MenuItem("GameObject/2D Object/Sprite Mask", priority = k_SpriteMaskGameObjectMenuPriority)]
  155. static void GameObjectCreateSpriteMask(MenuCommand menuCommand)
  156. {
  157. var go = ItemCreationUtility.CreateGameObject("Sprite Mask", menuCommand, new[] {typeof(SpriteMask)});
  158. go.GetComponent<SpriteMask>().sprite = AssetDatabase.LoadAssetAtPath<Sprite>(
  159. "Packages/com.unity.2d.sprite/Editor/ObjectMenuCreation/DefaultAssets/Textures/CircleMask.png");
  160. }
  161. }
  162. }