62 lines
1.7 KiB
C#
62 lines
1.7 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class FortInitializer : MonoBehaviour
|
|
{
|
|
[SerializeField] private GameObject[] forts;
|
|
[SerializeField] private List<ParticleSystem> effects; // ÷àñòèöû íà ñöåíå
|
|
|
|
public GameObject fort;
|
|
public CannonBattery EnemyBattery;
|
|
public EnemyCommand EnemyCommand;
|
|
public GameManager gameManager;
|
|
public PirateCommand pirateCommand;
|
|
[SerializeField] private Ñaptain cap;
|
|
|
|
private void Start()
|
|
{
|
|
SpawnFort(0);
|
|
}
|
|
|
|
public void FortSwitch(int index)
|
|
{
|
|
SpawnFort(index);
|
|
}
|
|
|
|
private void SpawnFort(int index)
|
|
{
|
|
if (fort != null)
|
|
{
|
|
Destroy(fort);
|
|
}
|
|
|
|
// Ñîçäà¸ì ôîðò êàê äî÷åðíèé îáúåêò òåêóùåãî îáúåêòà (èëè ìîæåøü ïåðåäàòü ëþáîé äðóãîé transform)
|
|
fort = Instantiate(forts[index], transform);
|
|
|
|
// Òåïåðü îí â ëîêàëüíûõ êîîðäèíàòàõ, ïîýòîìó íóæíî çàäàòü ëîêàëüíóþ ïîçèöèþ
|
|
fort.transform.localPosition = forts[index].GetComponent<Fort>().Poz;
|
|
fort.transform.localRotation = Quaternion.identity;
|
|
fort.transform.localScale = Vector3.one;
|
|
|
|
Fort fortScript = fort.GetComponent<Fort>();
|
|
EnemyBattery = fortScript.EnemyBattery;
|
|
EnemyCommand = fortScript.EnemyCommand;
|
|
|
|
gameManager.enemyBattery = EnemyBattery;
|
|
|
|
EnemyCommand.pirateTeam = pirateCommand;
|
|
pirateCommand.enemyTeam = EnemyCommand;
|
|
pirateCommand.ResetAllPiratesToHome();
|
|
if (cap != null) cap.enemyTeam = EnemyCommand;
|
|
|
|
gameManager.battery.ResetAllCannons();
|
|
|
|
// Çàïóñêàåì ýôôåêò äëÿ òåêóùåãî èíäåêñà
|
|
if (index < effects.Count && effects[index] != null)
|
|
{
|
|
effects[index].Play();
|
|
}
|
|
}
|
|
|
|
}
|