void Update() { var a = A.position.xz(); var b = B.position.xz(); DebugUtil.DrawCircle(a, R); DebugUtil.DrawCircle(b, R); var r = TransformRect((a + b) / 2, new float2(2 * R, math.length(b - a)), Math.Angle(b - a)); DebugUtil.Draw(r); DebugUtil.DrawLine(C.position.xz(), D.position.xz()); E.gameObject.SetActive(Intersect(r, C.position.xz(), D.position.xz())); // DebugUtil.DrawCircle(r.A, .5f); // DebugUtil.DrawCircle(r.B, .5f, Color.yellow); // DebugUtil.DrawCircle(r.C, .5f, Color.red); }