#c# #visual-studio #unity3d
#c# #visual-studio #unity3d
Вопрос:
Я создал систему для построения башен с помощью руководства brackeys. Я хочу выбирать башни по индексу скриптового объекта, но я не могу использовать массивы в TurretBP.
TurretBP хранит все данные турели
Buildmanager создает экземпляры turres
И метод SelectTurret(), прикрепленный к кнопкам
Вот код:
using UnityEngine;
using UnityEngine.UI;
public class Shop : MonoBehaviour
{
public TurretBP turret;
public TurretBP Jamsheed;
public TurretBP Farm;
public TurretBP Otbaphou;
public TurretBP Guard;
public int turretIdx;
BuildManager buildManager;
private void Start()
{
buildManager = BuildManager.instance;
}
public void SelectTurret()
{
buildManager.SelectTurretToBuild(turret);
}
public void SelectJamsheed()
{
buildManager.SelectTurretToBuild(Jamsheed);
}
public void SelectFarm()
{
buildManager.SelectTurretToBuild(Farm);
}
public void SelectOtbaphou()
{
buildManager.SelectTurretToBuild(Otbaphou);
}
public void SelectGuard()
{
buildManager.SelectTurretToBuild(Guard);
}
}
Ответ №1:
Вы можете использовать массивы (idk, почему вы написали, что не можете):
[SerializeField] private TurretBP[] towers;
public enum Towers
{
TURRET = 0,
JAMSHEED = 1,
FARM = 2,
OTBAPHOU = 3,
GUARD = 4
}
public TurretBP GetTower(int index)
{
return towers[index];
}
Затем вы можете вызвать buildManager.SelectTurretToBuild(GetTower(Towers.Guard));
или buildManager.SelectTurretToBuild(GetTower(4));