void Update () {
for(int i=0; i<images.Length-1; i++)
{
Image img0 = images[i];
for(int j=i+1; j<images.Length; j++)
{
Image img1 = images[j];
float dx = img1.GetComponent<RectTransform>().position.x – img0.GetComponent<RectTransform>().position.x;
float dy = img1.GetComponent<RectTransform>().position.y – img0.GetComponent<RectTransform>().position.y;
float dist = Mathf.Sqrt(dx * dx + dy * dy);
float minDist = img0.GetComponent<RectTransform>().rect.width / 2 + img1.GetComponent<RectTransform>().rect.width/2;
if (dist < minDist)
{
float angle = Mathf.Atan2(dy, dx);
float tx = img0.GetComponent<RectTransform>().position.x + dx / dist * minDist;
float ty = img0.GetComponent<RectTransform>().position.y + dy / dist * minDist;
float ax = (tx – img1.GetComponent<RectTra
Unity3D多物体碰撞关键代码
最新推荐文章于 2025-03-06 21:12:34 发布