码哥驾到

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 845|回复: 0

Unity3D多物体碰撞关键代码

[复制链接]

185

主题

217

帖子

1016

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1016

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2022-2-24 23:58:25 | 显示全部楼层 |阅读模式
  1. void Update () {

  2.         for(int i=0; i<images.Length-1; i++)
  3.         {
  4.                 Image img0 = images[i];
  5.                 for(int j=i+1; j<images.Length; j++)
  6.                 {
  7.                         Image img1 = images[j];
  8.                         float dx = img1.GetComponent<RectTransform>().position.x – img0.GetComponent<RectTransform>().position.x;
  9.                         float dy = img1.GetComponent<RectTransform>().position.y – img0.GetComponent<RectTransform>().position.y;
  10.                         float dist = Mathf.Sqrt(dx * dx + dy * dy);
  11.                         float minDist = img0.GetComponent<RectTransform>().rect.width / 2 + img1.GetComponent<RectTransform>().rect.width/2;
  12.                         if (dist < minDist)
  13.                         {
  14.                                 float angle = Mathf.Atan2(dy, dx);
  15.                                 float tx = img0.GetComponent<RectTransform>().position.x + dx / dist * minDist;
  16.                                 float ty = img0.GetComponent<RectTransform>().position.y + dy / dist * minDist;
  17.                                 float ax = (tx – img1.GetComponent<RectTransform>().position.x) * 0.05f;
  18.                                 float ay = (ty – img1.GetComponent<RectTransform>().position.y) * 0.05f;
  19.                                 img0.GetComponent<Player>().speedX -= ax;
  20.                                 img0.GetComponent<Player>().speedY -= ay;
  21.                                 img1.GetComponent<Player>().speedX += ax;
  22.                                 img1.GetComponent<Player>().speedY += ay;
  23.                         }
  24.                 }
  25.         }
  26. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|码哥驾到 ( 京ICP备15044914号-1 )

GMT+8, 2022-5-25 12:49 , Processed in 0.062500 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表