Как узнать, перекрываются ли два круга или соприкасаются в единстве? - PullRequest
0 голосов
/ 27 января 2019

Я использую приведенный ниже код, чтобы нарисовать круг вокруг моего игрового объекта:

using UnityEngine;
 using System.Collections;

 [RequireComponent(typeof(LineRenderer))]
 public class DrawCircle : MonoBehaviour
 {
     [Range(0, 50)]
     public int segments = 50;
     [Range(0, 5)]
     public float xradius = 5;
     [Range(0, 5)]
     public float yradius = 5;
     LineRenderer line;

     void Start()
     {
         line = gameObject.GetComponent<LineRenderer>();
         line.positionCount = segments + 1;
         line.useWorldSpace = false;
         CreatePoints();
     }

     void Update()
     {
         CreatePoints();
     }

     void CreatePoints()
     {
         float x;
         float y;
         float z;

         float angle = 20f;

         for (int i = 0; i < (segments + 1); i++)
         {
             x = Mathf.Sin(Mathf.Deg2Rad * angle) * xradius;
             z = Mathf.Cos(Mathf.Deg2Rad * angle) * yradius;

             line.SetPosition(i, new Vector3(x, 0, z));

             angle += (360f / segments + 1);
         }
     }
 }

Допустим, если бы я добавил этот класс Circle в качестве компонента объекта A и объекта B. Как бы я былспособен определить, касается ли круг на объекте A круга на объекте B?

1 Ответ

0 голосов
/ 28 января 2019

Если расстояние между центрами окружностей больше, чем сумма его радиусов, окружности не соприкасаются.если его меньше, они делают

...