Unity3d Unity编辑器脚本:类似BoxCollider的场景控件
我遇到了一些使用Unity3d Unity编辑器脚本:类似BoxCollider的场景控件,unity3d,unity-editor,Unity3d,Unity Editor,我遇到了一些使用边界“伪造”碰撞器的场景,主要是当我只需要将一个对象保持在某个区域内(使用边界.Contains)并且不希望它参与物理时 我知道我可以使用触发器,但这需要一个专用的层,这不是一个选项,因为我的游戏是层外的 我创建了一个简单的BoundsHolder脚本,它使用本地大小/中心来计算边界。 我使用Gizmos.DrawWireCube在编辑器中显示它们,如下所示: 但是我想添加拖动控件BoxCollider来扩大我的边界: 我在google+上到处搜索,浏览文档,查找小发明和手柄
边界“伪造”碰撞器的场景,主要是当我只需要将一个对象保持在某个区域内(使用边界.Contains
)并且不希望它参与物理时
我知道我可以使用触发器,但这需要一个专用的层,这不是一个选项,因为我的游戏是层外的
我创建了一个简单的BoundsHolder
脚本,它使用本地大小/中心来计算边界。
我使用Gizmos.DrawWireCube在编辑器中显示它们,如下所示:
但是我想添加拖动控件BoxCollider
来扩大我的边界:
我在google+上到处搜索,浏览文档,查找小发明
和手柄
——但那里的所有功能似乎都是关于绘制立方体,而不是调整工具大小
是否有一个内置工具来重新创建我丢失的内容?
如果没有-那么最好的方法是什么?
奖金问题-我的BoundsHolder使用轴对齐且不支持旋转的UnityEngine.Bounds
。是否有支持旋转的替代版本?(并且仍然提供Contains(Vector3)
API?)
谢谢是的,手柄是用来画东西的,但也可以相互作用,这样你就可以真正抓住手柄了。
好吧,你必须自己实现对盒子的缩放。但是一个好的选择可能会有所帮助。或者创建一个
对于长方体碰撞器触发器,您可以查看(带方向的长方体的真/假命中测试)
或进入
(这会给你一个里面的游戏对象列表-如果你愿意,可以像“包含”一样使用)
由于您不需要额外的层,您可以将layermask设置为“everything”,并检查对象引用或标记以确保您拥有正确的对象。有一种使用矩阵作为管道的渲染机制。所以如果你想让它移动,缩放,旋转
要做到这一点,如果我做同样的工作,那么我将从“transform.localToWorldMatrix”开始
Matrix4x4 Matrix4x4=transform.localToWorldMatrix
矩阵A
0吨
0吨
0吨
0 0 0 0
“矩阵A”、“T”的部分从该矩阵中删除部分,以便您可以更改或添加偏移量以从当前游戏对象移动更多。
然后,把它画成这样
public void OnDrawGizmosSelected()
{
Matrix4x4 matrix4x4 = transform.localToWorldMatrix;
....
....
do something with "matrix4x4" here
Gizmos.matrix = matrix4x4; // apply matrix to move/scale/rotate
Gizmos.DrawCube(..)
}