需求
在snece内选中一个物体,按快捷键给物体添加一个子cube,然后可以手动调整cube的boxcollider,调整完成后勾掉meshreaderer。用来做摄像机移动时的碰撞。
效果
实现
在editor文件夹下创建c#脚本
using UnityEngine;
using UnityEditor;
public class AddBoxCollider : Editor
{
//添加在unity的菜单栏上,&c 快捷键ALT+C
[MenuItem("Tool/AddBoxCollider &C")]
public static void FAddBoxCollider()
{
BoxCollider now;
//选中了 gameobject
if (Selection.activeGameObject != null)
{
if (Selection.activeGameObject.GetComponent<BoxCollider>() == null)
{
now = Selection.activeGameObject.AddComponent<BoxCollider>();
}
else
{
now = Selection.activeGameObject.GetComponent<BoxCollider>();
}
//创建一个子物体cube
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.transform.parent = Selection.activeGameObject.transform;
cube.transform.localScale = now.size;
cube.transform.localPosition = now.center;
//cube.transform.localRotation = Quaternion.Euler(Vector3.zero);
cube.transform.localEulerAngles = Vector3.zero;
cube.name = Selection.activeGameObject.name + "collider";
//cube.transform.parent =
//删除原物体的BoxCollider
DestroyImmediate(now);
}
else
{
Debug.LogWarning("must choose someone");
}
}
}