毎回コーネルボックスを作るのが面倒だったので
コーネルボックスを作成してくれるEditor拡張をつくってみました :)
using UnityEngine;
using UnityEditor;
public class ConelBoxGenerator
{
[MenuItem ("Tools/Else/ConelboxGenerate")]
static void Ceate ()
{
var conelbox = new GameObject ().transform;
conelbox.name = "conelbox";
SetPosition (conelbox, 0, 0, 0);
//Left
var plane0 = GameObject.CreatePrimitive (PrimitiveType.Plane).transform;
SetPosition (plane0, -5, 0, 0);
SetRotation (plane0, 0, 0, -90);
//right
var plane1 = GameObject.CreatePrimitive (PrimitiveType.Plane).transform;
SetPosition (plane1, 5, 0, 0);
SetRotation (plane1, 0, 0, 90);
//up
var plane2 = GameObject.CreatePrimitive (PrimitiveType.Plane).transform;
SetPosition (plane2, 0, 5, 0);
SetRotation (plane2, 0, 0, 180);
//down
var plane3 = GameObject.CreatePrimitive (PrimitiveType.Plane).transform;
SetPosition (plane3, 0, -5, 0);
SetRotation (plane3, 0, 0, 0);
//back
var plane4 = GameObject.CreatePrimitive (PrimitiveType.Plane).transform;
SetPosition (plane4, 0, 0, -5);
SetRotation (plane4, 90, 0, 0);
//front
var plane5 = GameObject.CreatePrimitive (PrimitiveType.Plane).transform;
SetPosition (plane5, 0, 0, 5);
SetRotation (plane5, -90, 0, 0);
plane0.SetParent (conelbox, false);
plane1.SetParent (conelbox, false);
plane2.SetParent (conelbox, false);
plane3.SetParent (conelbox, false);
plane4.SetParent (conelbox, false);
plane5.SetParent (conelbox, false);
plane0.gameObject.isStatic = true;
plane1.gameObject.isStatic = true;
plane2.gameObject.isStatic = true;
plane3.gameObject.isStatic = true;
plane4.gameObject.isStatic = true;
plane5.gameObject.isStatic = true;
conelbox.gameObject.isStatic = true;
}
static void SetRotation (Transform transform, int x, int y, int z)
{
transform.rotation = Quaternion.Euler (x, y, z);
}
static void SetPosition (Transform transform, int x, int y, int z)
{
transform.position = new Vector3 (x, y, z);
}
}