0

我想知道,如何在物体内部不发生碰撞。我有一个大圆圈,圆圈内是一个较小的正方形。游戏开始时,圆圈正在缩小。我想要的是检查碰撞,如果圆圈接触或在正方形内。

你能帮我么 ?谢谢

4

1 回答 1

1

据我所知,在 Unity 中没有内置的方法来实现这一点(也没有内置的方法来检测对撞机是否完全在另一个对撞机内)。

如果我对你的理解正确,你的圈子会缩小,当它到达这一点时

在此处输入图像描述

你想做一些事情,例如执行一些代码

仅基于数学,您可以使其适用于圆形和方形的方法是:

如果你的正方形的边是长的a,而你的圆的半径减小了r,那么在上图中你看到的那一刻,它们之间的关系是:

r = a / sqrt(2)

因此,您可以签if (r <= a / Mathf.Sqrt(2))入该Update函数并基于该调用某个函数。(也许添加另一个布尔值以确保该函数只被调用一次。)

你可以使用得到你的精灵宽度

width = GetComponent<SpriteRenderer>().bounds.size.x;

那么你的圆的半径显然是圆形精灵宽度的一半。

您可能还应该将 存储在一个变量中一次,而不是在每一帧SpriteRenderer上调用。GetComponent

对于等边三角形,方程为

r = a / sqrt(3)

其中a是三角形边的长度。

于 2016-12-23T20:11:11.723 回答