to new git
This commit is contained in:
@ -3,17 +3,62 @@ using UnityEngine;
|
||||
|
||||
public class MapManager : MonoBehaviour
|
||||
{
|
||||
public static List<NavPoint> navPoints { get; private set; }
|
||||
private void Start()
|
||||
private static MapManager instance;
|
||||
public static MapManager Instance => instance;
|
||||
private static List<NavPoint> navPoints = new List<NavPoint>();
|
||||
private static Dictionary<int, NavPoint> iDToNavPoint = new Dictionary<int, NavPoint>();
|
||||
public static List<NavPoint> NavPoints { get => navPoints; private set => navPoints = value; }
|
||||
public static Dictionary<int, NavPoint> IDToNavPoint { get => iDToNavPoint; private set => iDToNavPoint = value; }
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
var i = 0;
|
||||
navPoints = new List<NavPoint>();
|
||||
var navPointsGameObj = GameObject.FindGameObjectsWithTag("Point");
|
||||
foreach (var gameobj in navPointsGameObj)
|
||||
if (instance is null)
|
||||
instance = this;
|
||||
else
|
||||
{
|
||||
var navpoint = gameobj.GetComponent<NavPoint>();
|
||||
navpoint.PointId = i; i++;
|
||||
navPoints.Add(navpoint);
|
||||
Destroy(gameObject);
|
||||
Debug.LogError("Only 1 Instance");
|
||||
}
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
var navPointSet = GameObject.Find("NavPoint Set");
|
||||
var count = navPointSet.transform.childCount;
|
||||
for (int i=0; i < count; i++)
|
||||
NavPoints.Add(navPointSet.transform.GetChild(i)
|
||||
.gameObject.GetComponent<NavPoint>());
|
||||
|
||||
NavPointSetToID();
|
||||
}
|
||||
|
||||
private void NavPointSetToID()
|
||||
{
|
||||
int i = 0;
|
||||
foreach (var navPoint in NavPoints)
|
||||
{
|
||||
IDToNavPoint.Add(i, navPoint);
|
||||
navPoint.PointId = i;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
public static void AddDeathAttributeToPoints(int startPoint, int endPoint,
|
||||
float allDistance, float remainingDistance)
|
||||
{
|
||||
var startNavPoint = IDToNavPoint[startPoint];
|
||||
var endNavPoint = IDToNavPoint[endPoint];
|
||||
float coef;
|
||||
try
|
||||
{
|
||||
coef = remainingDistance / allDistance;
|
||||
}
|
||||
catch (System.ArithmeticException)
|
||||
{
|
||||
Debug.LogError("Path Length is zero");
|
||||
return;
|
||||
}
|
||||
startNavPoint.DeathAttr += 1 - coef;
|
||||
endNavPoint.DeathAttr += coef;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user