void Awake() { _trans = transform; _triggeredTriggers = new List <LOSEventTrigger>(); _manager = GameObject.FindObjectOfType <LOSManager>(); }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public void OnDisable() { LOSManager.RemoveEntity(this); }
// Request a change to the FOW colour //****************************************************************************************************************************** // // FUNCTIONS // //****************************************************************************************************************************** // Tell the LOS manager that we're here public void OnEnable() { LOSManager.AddEntity(this); }
void Start() { // Replace current scene map by GameData.map // throw new UnityException("GameInitializer not implemented yet"); // TODO: Delete this // Change scene map if (sceneMap != null) Destroy(sceneMap); // Deactive LOSManager before Instantiating terrainLOSManager = GameData.map.GetComponent<LOSManager>(); terrainLOSManager.enabled = false; // remember to restore prefab later // Deactivate A* too foreach (Transform t in GameData.map.transform){ if (t.gameObject.name.Equals ("A*")) t.gameObject.SetActive(false); // remember to reactivate it later in prefab } createdMap = (GameObject) Instantiate ( GameData.map, Vector3.zero, Quaternion.identity ); terrainLOSManager.enabled = true; // restore prefab // Reactivate A* too foreach (Transform t in GameData.map.transform){ if (t.gameObject.name.Equals ("A*")) t.gameObject.SetActive(true); } MapInfo mapInfo = createdMap.GetComponent<MapInfo>(); terrainLOSManager = createdMap.GetComponent<LOSManager>(); // Remember to activate LOSManager when everything is set // Change minimap settings MinimapCamera minimapCamera = minimap.GetComponent<MinimapCamera>(); minimapCamera.ground = createdMap; minimapCamera.updateCameraAttributes(); // Replace current Town Centers by those detailed by GameData and GameData.map // Delete old Town Centers foreach (Transform t in buildings.transform) { Destroy(t.gameObject); } // Delete old Units foreach (Transform t in units.transform) { Destroy(t.gameObject); } // Instantiate new Town Centers according to the number of players LOSEntity townCenterLOSEntity; townCenters = new List<GameObject>(); // Player Civilization playerCiv = Utils.GetEnumValue<Civilization>(GameData.player.civ.ToString()); GameObject townCenterPrefab = DataManager.Instance.civilizationDatas[ playerCiv ].units[UnitType.TownCenter]; hud.setCivilization(playerCiv); // Instantiate player town Center GameObject townCenter = (GameObject) Instantiate ( townCenterPrefab, mapInfo.towncenter1.transform.position, mapInfo.towncenter1.transform.rotation ); Identity iden = townCenter.GetComponent<Identity>(); if (iden != null) iden.player = Player.Player; townCenter.name = "PlayerTownCenter"; townCenter.transform.SetParent(buildings.transform); townCenter.tag = "Ally"; GameController.Instance.addSelectedPrefab(townCenter); townCenters.Add(townCenter); int cpus = 0; Transform townCenterTransform; Player player; Identity idenCPU; foreach (GameData.CPUData cpu in GameData.cpus) { cpus++; townCenterPrefab = DataManager.Instance.civilizationDatas[cpu.civ].units[UnitType.TownCenter]; if (cpus == 1) { townCenterTransform = mapInfo.towncenter2.transform; player = Player.CPU1; } else if (cpus == 2) { townCenterTransform = mapInfo.towncenter3.transform; player = Player.CPU2; } else if (cpus == 3) { townCenterTransform = mapInfo.towncenter4.transform; player = Player.CPU3; } else continue; townCenter = (GameObject) Instantiate ( townCenterPrefab, townCenterTransform.position, townCenterTransform.rotation ); idenCPU = townCenter.GetComponent<Identity>(); if (idenCPU != null) { idenCPU.player = player; } townCenter.name = "CPU" + cpus.ToString() + "TownCenter"; townCenter.transform.SetParent(buildings.transform); townCenter.tag = "Enemy"; townCenters.Add(townCenter); } GameController.Instance.hud.hideRightPanel(); GameController.Instance.addSelectedPrefabstoCurrentUnits(); GameController.Instance.addTeamCirclePrefabstoCurrentUnits(); }
// Use this for initialization void Start() { init(); losMan = GameObject.FindGameObjectWithTag("Ground").GetComponent<LOSManager>(); LOSinactive = losMan.revealed; }