我想要一些帮助来解决这个问题,因为我的大脑今天有一个有趣的一天,什么是最好的方法来解决这个问题。
我有一个OnDrawGizmos如下
Transform parentBounds;
void OnDrawGizmos()
{
parentBounds = this.gameObject.transform;
Vector3 from;
Vector3 to;
for (int a = 0; a < parentBounds.childCount; a++)
{
from = parentBounds.GetChild(a).position;
to = parentBounds.GetChild((a + 1) % parentBounds.childCount).position;
Gizmos.color = new Color(1, 0, 0);
Gizmos.DrawLine(from, to);
}
}
这段代码附加在一个包含4个空游戏对象的“父”对象上,如下所示
这将产生以下Gizmo(根据我在父对象中放置空对象的位置绘制一个正方形)
如果我愿意,我甚至可以增加更多的分数。
那么问题是什么呢?
我所需要的是,如果玩家不在这个区域内,我希望玩家被摧毁。我不确定这个的最佳实践是什么我是否应该创建一个数组来保存xmin ymax等等?或者我应该在每个循环上生成一个新的位置向量?我尝试过一些方法,但都没有得到我想要的结果,我学会了寻求帮助。
提前感谢大家!
###如果这是一款2D游戏(游戏邦注:我认为这是一款2D游戏),那么使用一个引用玩家对象的脚本如何?
A,游戏不使用物理
.。. 公共Rect边界。在每个更新()检查玩家是否在边界内,如果不在-摧毁它。
void Update()
{
if (!boundaries.Contains(playerObject.transform.position))
{
Destroy(playerObject);
}
}
B,游戏使用物理
.。. 使用下面的脚本创建BoxCollider2D
void OnColliderExit2D(Collider2D collider)
{
// If collider is player object -> destroy collider.gameObject
}