public static ActorPathManager GetInstance() { if (instance == null) { lock (_lock) { if (instance == null) { instance = new ActorPathManager(); } } } return(instance); }
public void CreateNewActor(Actor actor, Vector3 pos) { GameObject actorObj = (GameObject)Object.Instantiate(Resources.Load("GameScene/Actor")); int actorId = this.GenerateNewActorId(); actorObj.transform.name = "Actor_" + actorId.ToString("D3"); actorObj.transform.localScale = new Vector3(1, 1, 1); actorObj.transform.position = pos; ActorController actorCtrl = actorObj.GetComponent <ActorController>(); actor.ActorId = actorId; actorCtrl.TargetBuilding = BuildingsManager.GetInstance() .GetBaseBuildingOfFaction(actor.FactionType == FactionType.Blue ? FactionType.Red : FactionType.Blue); actorCtrl.ActorPath = ActorPathManager.GetInstance() .GenerateNewPath(pos, actorCtrl.TargetBuilding.transform.position); actorCtrl.MyActor = actor; this.actorsDictionary.Add(actorId, actorObj); }