public static void PreBuildTower(UnitTower tower) { PlatformTD platform = null; LayerMask mask = 1 << LayerManager.LayerPlatform(); Collider[] cols = Physics.OverlapSphere(tower.thisT.position, _gridSize, mask); if (cols.Length > 0) { platform = cols[0].gameObject.GetComponent <PlatformTD>(); } if (platform != null) { Vector3 buildPos = GetTilePos(platform.thisT, tower.thisT.position); tower.thisT.position = buildPos; tower.thisT.rotation = platform.thisT.rotation; platform.BuildTower(buildPos, tower); } else { Debug.Log("no platform found for pre-placed tower"); } tower.InitTower(instance.towerCount += 1); if (tower.GetType() == typeof(UnitDefender)) { if (((UnitDefender)tower).behaviour == Behaviour.Stational) { tower.transform.Rotate(Vector3.up, 90); } } }