Где храняться данные
|
|
Demonator | Дата: Понедельник, 23 Января 2017, 22:32 | Сообщение # 1 |
уже был
Сейчас нет на сайте
| Откуда скрипты Юнити могут брать данные для вычислений , у меня есть игра в которой написан скрипт создания автомобиля но в нем фигурирует только одни показатели мощности количества передач и прочего но в игре машин 5 и у каждой они свои но других данных в скрипте нет значит он берет их откуда то в другом месте , где обычно могут брать информацию скрипты ?
|
|
| |
MysticPurple | Дата: Понедельник, 23 Января 2017, 23:04 | Сообщение # 2 |
почетный гость
Сейчас нет на сайте
| Немножко не понял вопрос. Я так понял, что есть скрипт, что-то вроде:
Код public class MyScript : MonoBehaviour { public int moshnost = 100; // мощность public int kolvoPeredach = 200; // кол-во передач и т д. }
Если на сцене расположено несколько объектов с этим скриптом, то у каждого экземпляра скрипта могут быть свои значения этих переменных moshnost, kolvoPeredach Если что-то неправильно понял, то извиняй, объясни вопрос конкретнее, идеально было бы с примером
|
|
| |
Jlovenpk1 | Дата: Понедельник, 23 Января 2017, 23:22 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Demonator, Информация для данных о характеристиках игровых объектов в твоем случае машин могут храниться в разных местах. Если игра твоя, то и выбор хранения конфига для игровых объектах выбирается тобой. В былые времена, такие конфиги я находил в Lineage 2 в формате xml(для оружий и доспехов).
MysticPurple, Правильно дал тебе наводку где искать данные о характеристиках игровых объектах.
т.е у тебя есть 5 машин.
1 Порше - мощность 220 лошадей 5 передач. 2 БМВ - мощность 220 лошадей 5 передач. 3 Лексус - мощность 240 лошадей 5 передач. 4 Лада приора - мощность 200 лошадей 4 передачи. 5 Лада X-ray - мощность 210 лошадей 5 передач.
Скрипты на машинах лежат одинаковые, а от показателей мощности зависит и скорость передвижения твоих машин. Все вычисления происходят внутри скрипта. Данные о мощности и передача могут храниться: - В xml файле, из которого все берется. - В текстовом файле O.o что тоже реально, наверное :DD - В базе данных - О.о
Или же прописываться вручную, т.е
Код public int power = 220; public int peredacha = 5;
Или же можно так:
Код public int power = 0; public int peredacha = 0;
Добавляем скрипт на машину и вручную руками вбиваем данные для будущего расчета.
Расчет может происходить так:
Код public int power = 220; public int peredacha = 5;
public void CarSpeed() { int CarSpeed = 0; if (peredacha == 1) { CarSpeed = power /3.4f; } if (peredacha == 2) { CarSpeed = power/3.0f; } }
И т.д
Метод ветвления не самый лучший, но в качестве примера подойдет.
Объяснил в силу того, как понял твой вопрос.
DjanStudio
Сообщение отредактировал Jlovenpk1 - Понедельник, 23 Января 2017, 23:24 |
|
| |
Demonator | Дата: Вторник, 24 Января 2017, 19:45 | Сообщение # 4 |
уже был
Сейчас нет на сайте
| Цитата MysticPurple ( ) Немножко не понял вопрос. Я так понял, что есть скрипт, что-то вроде: Код
public class MyScript : MonoBehaviour { public int moshnost = 100; // мощность public int kolvoPeredach = 200; // кол-во передач и т д. }
Если на сцене расположено несколько объектов с этим скриптом, то у каждого экземпляра скрипта могут быть свои значения этих переменных moshnost, kolvoPeredach Если что-то неправильно понял, то извиняй, объясни вопрос конкретнее, идеально было бы с примером
Есть такая игра My summer car в ней 5 машин а в скриптах мы нашли указанные мощности только для одной , Код [RequireComponent(typeof(Axles))] public class Drivetrain : MonoBehaviour { public enum Transmissions { RWD, FWD, AWD, XWD }
[HideInInspector] public bool engineTorqueFromFile;
[HideInInspector] public int torqueRPMValuesLen;
[HideInInspector] public float[,] torqueRPMValues = new float[0, 0];
[HideInInspector] public Clutch clutch;
[HideInInspector] public CarController carController;
private Setup setup;
private Axles axles;
[HideInInspector] public FuelTank[] fuelTanks;
private Rigidbody body;
private Transform myTransform;
[HideInInspector] public Wheel[] poweredWheels;
public float maxPower = 210f;
public float maxPowerRPM = 5000f;
public float maxTorque = 360f;
public float maxTorqueRPM = 2500f;
[HideInInspector] public float originalMaxPower = 210f;
[HideInInspector] public float maxNetPower;
это не весь код но больше негде не повторяются какие либо значения похожие на характеристики авто
|
|
| |
MysticPurple | Дата: Вторник, 24 Января 2017, 20:10 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| Demonator, Теперь кажется понял Значения переменных в этом скрипте - это значения по-умолчанию. Если создать в редакторе юнити в сцене какой-то объект и добавить на него этот скрипт - у этого добавленного скрипта значения переменных будут равны этим значениям по-умолчанию. НО! В редакторе Юнити эти значения можно менять отдельно для каждого экземпляра скрипта. Например, можно создать на сцене 3 объекта, каждому добавить этот скрипт и сделать, чтоб у 1 объекта maxPower было 20, у второго - 30, а у третьего - 180.
То есть, "реальные" значения для каждой машины могут быть либо у объектов на сцене, либо в префабах (префаб - это типа объект со скриптами и их настройками, сохраненный в отдельный файл)
|
|
| |