Created
December 8, 2013 11:10
-
-
Save baba-s/7855999 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEditor; | |
using UnityEngine; | |
/// <summary> | |
/// ゲームオブジェクトの作成を拡張するクラス | |
/// </summary> | |
public class CreateGameObject : ScriptableObject | |
{ | |
/// <summary> | |
/// 空のゲームオブジェクトを現在選択中のゲームオブジェクトの階層に作成する | |
/// </summary> | |
[MenuItem("Tools/Create Game Object/Empty %&n")] | |
private static void CreateEmpty() | |
{ | |
CreateEmpty("GameObject"); | |
} | |
/// <summary> | |
/// 現在選択中のゲームオブジェクトの親となる空のゲームオブジェクトを作成する | |
/// </summary> | |
[MenuItem("Tools/Create Game Object/Parent %&p")] | |
private static void CreateParent() | |
{ | |
if (!CanCreateParent()) | |
{ | |
return; | |
} | |
var activeTransform = Selection.activeTransform; | |
var parent = CreateEmpty(activeTransform.name + "Parent"); | |
var parentTransform = parent.transform; | |
parentTransform.parent = activeTransform.parent; | |
parentTransform.localScale = Vector3.one; | |
activeTransform.parent = parentTransform; | |
} | |
/// <summary> | |
/// 親となる空のゲームオブジェクトを作成できるかどうかを確認する | |
/// </summary> | |
/// <returns>親となる空のゲームオブジェクトを作成できる場合 true</returns> | |
[MenuItem("Tools/Create Game Object/Parent %&p", true)] | |
private static bool CanCreateParent() | |
{ | |
return Selection.activeTransform != null; | |
} | |
/// <summary> | |
/// 空のゲームオブジェクトを作成する | |
/// </summary> | |
/// <param name="name">空のゲームオブジェクトの名前</param> | |
/// <returns>作成した空のゲームオブジェクト</returns> | |
private static GameObject CreateEmpty(string name) | |
{ | |
var empty = new GameObject(name); | |
var emptyTransform = empty.transform; | |
emptyTransform.parent = Selection.activeTransform; | |
emptyTransform.localScale = Vector3.one; | |
emptyTransform.localPosition = Vector3.zero; | |
emptyTransform.localRotation = Quaternion.identity; | |
var activeTransform = Selection.activeTransform; | |
if (activeTransform != null) | |
{ | |
empty.layer = activeTransform.gameObject.layer; | |
} | |
Selection.activeGameObject = empty; | |
EditorUtility.SetDirty(empty); | |
return empty; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment