Skip to content

Instantly share code, notes, and snippets.

@baba-s
Created December 8, 2013 11:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save baba-s/7855999 to your computer and use it in GitHub Desktop.
Save baba-s/7855999 to your computer and use it in GitHub Desktop.
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