| Где храняться данные | 
|  | 
| 
| 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.
 
 То есть, "реальные" значения для каждой машины могут быть либо у объектов на сцене, либо в префабах (префаб - это типа объект со скриптами и их настройками, сохраненный в отдельный файл)
 |  |  |  |  |