Squashed commit of the following:

commit 428243f4a6
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Sat Aug 29 13:43:13 2026 +0300

    Squashed commit of the following:

    commit 68e78fa464
    Author: AsanoRema <asanorema2036@gmail.com>
    Date:   Sat Aug 29 13:41:49 2026 +0300

        Updated .gitignore

commit 9f87122a34
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Sat Aug 29 13:34:57 2026 +0300

    Added Dohya

commit f6a7547e84
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Fri Aug 21 17:59:13 2026 +0300

    Fixed

commit b98901c366
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Tue Aug 18 17:37:22 2026 +0300

    Added new particle Package

commit bb2f4a3b16
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Tue Aug 18 17:17:48 2026 +0300

    Map mehanic ready to multiplayer

commit c01ff800f6
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Tue Aug 18 16:16:19 2026 +0300

    Squashed commit of the following:

    commit 173bbb165c
    Author: henjkey <henjkey@gmail.com>
    Date:   Fri Aug 14 18:51:23 2026 +0500

        Mappp

    commit d559ab338a
    Author: henjkey <henjkey@gmail.com>
    Date:   Thu Aug 13 18:42:41 2026 +0500

        Map

        Controller
        Coordinates
        Target System
        Crosshair System
        Radar System
This commit is contained in:
2026-08-29 13:45:55 +03:00
parent 68e78fa464
commit ffa1064063
3344 changed files with 4722286 additions and 105458 deletions
@@ -0,0 +1,84 @@
using System.Collections.Generic;
using UnityEngine;
namespace VLB
{
public class PolygonHelper : MonoBehaviour
{
public struct Plane2D
{
public Vector2 normal;
public float distance;
public float Distance(Vector2 point) { return Vector2.Dot(normal, point) + distance; }
public Vector2 ClosestPoint(Vector2 pt) { return pt - normal * Distance(pt); }
public Vector2 Intersect(Vector2 p1, Vector2 p2)
{
float denominator = Vector2.Dot(normal, p1 - p2);
if (Utils.IsAlmostZero(denominator))
return (p1 + p2) * 0.5f;
float u = (normal.x * p1.x + normal.y * p1.y + distance) / denominator;
return (p1 + u * (p2 - p1));
}
public bool GetSide(Vector2 point) { return Distance(point) > 0.0f; }
public static Plane2D FromPoints(Vector3 p1, Vector3 p2)
{
var v = (p2 - p1).normalized;
return new Plane2D
{
normal = new Vector2(v.y, -v.x),
distance = (-v.y * p1.x + v.x * p1.y)
};
}
public static Plane2D FromNormalAndPoint(Vector3 normalizedNormal, Vector3 p1)
{
return new Plane2D
{
normal = normalizedNormal,
distance = (-normalizedNormal.x * p1.x - normalizedNormal.y * p1.y)
};
}
public void Flip() { normal = -normal; distance = -distance; }
public Vector2[] CutConvex(Vector2[] poly)
{
Debug.Assert(poly.Length >= 3);
var polyOut = new List<Vector2>(poly.Length);
Vector2 startingPoint = poly[poly.Length - 1];
foreach (var endPoint in poly)
{
var startingSide = GetSide(startingPoint);
var endSide = GetSide(endPoint);
if (startingSide && endSide)
{
polyOut.Add(endPoint);
}
else if (startingSide && !endSide)
{
polyOut.Add(Intersect(startingPoint, endPoint));
}
else if (!startingSide && endSide)
{
polyOut.Add(Intersect(startingPoint, endPoint));
polyOut.Add(endPoint);
}
startingPoint = endPoint;
}
return polyOut.ToArray();
}
public override string ToString() { return string.Format("{0} x {1} + {2}", normal.x, normal.y, distance); }
}
}
}