Поэтому вместо того чтобы думать категориями конечных объектов я думаю категорией информации. Я создаю класс который хранит например все вращения и положения для объекта. И уже и декораторФлоат и любой другой класс обращаются к этому классу содержащие только переменные.
pixeye, это описание мне очень нравится, у меня иногда цепочка увеличивается до 4-х пунктов, скрипт в скрипте скрипта) надо бы погуглить, как с этим работать, для чайников, как это по английски понятие называется, чтобы гуглилось легко?!
PS В принципе, попробую просто погуглить на Add Behaviour
Сообщение отредактировал alexsilent - Четверг, 09 Ноября 2017, 21:24
PS В принципе, попробую просто погуглить на Add Behaviour
ты вряд ли найдешь инфу так как я просто делал свою систему.
Я ее собираюсь описывать и даже частично начал в видео подводить к этому, но там немало всего надо донести будет. Если тебе интересно то читай про инъекции
Если пока сложно и непонятно то не парься. Не рекомендую в корне менять свой подход к написанию. Привычки штука сильная. Это видео рассказывает как работать со скритабл обджектами - оч мощная штука в юнити о которой часто забывают. Она подтолкнула меня в свое время на разные мысли.
Это видео рассказывает как работать со скритабл обджектами - оч мощная штука в юнити о которой часто забывают. Она подтолкнула меня в свое время на разные мысли.
Согласен. Я о них очень долгое время не знал, а когда узнал - пожалел, что плохо читал справку, потому что SO очень сильно упрощают жизнь и помогают сделать архитектуру красивее.
Сообщение отредактировал InsaneSystems - Четверг, 09 Ноября 2017, 23:19
Разбираюсь с си шарпом дальше и появились новые проблемы с C#, нет встроенного Array. Но я вроде бы это исправил, только не знаю насколько оптимизированно это, и есть ли лучше способ, без Array я не могу жить, очень много нужно динамически массив туда сюда перегонять для разных целей, и в яваскрипт с этим было намного лучше. Тут код симулирующий юнитискрипт Array, жаль что я не программист, а то бы наверное лучше вышло еще тут нет отдельно работы с Boolean и векторами, функций будет в 2 раза больше, и это меня немного пугает, стоит ли опасаться за оптимизацию :
Код
using UnityEngine; using System.Collections;
public class Array : MonoBehaviour { static Array It;
void Awake() { It = this; }
public float[] values; float[] arrayCopy; void Start() { /*foreach (float value in values) { print(value); }
print("***"); foreach (float value in values) { print(value); }*/ }
public float[] Add(float[] arrs,float word) { float[] arrayCopy = arrs; arrs = new float[arrs.Length+1]; int b = 0; for (int a = 0; a < arrayCopy.Length; a++) { arrs[b] = arrayCopy[b]; b++; } arrs[b] = word; return arrs; }
public int[] Add(int[] arrs, int word) { int[] arrayCopy = arrs; arrs = new int[arrs.Length+1]; int b = 0; for (int a = 0; a < arrayCopy.Length; a++) { arrs[b] = arrayCopy[b]; b++; } arrs[b] = word; return arrs; }
public string[] Add(string[] arrs, string word) { string[] arrayCopy = arrs; arrs = new string[arrs.Length+1]; int b = 0; for (int a = 0; a < arrayCopy.Length; a++) { arrs[b] = arrayCopy[b]; b++; } arrs[b] = word; return arrs; }
public float[] Push(float[] arrs, float word) { float[] arrayCopy = arrs; arrs = new float[arrs.Length+1]; int b = 1; for (int a = 0; a < arrayCopy.Length; a++) { arrs[b] = arrayCopy[a]; b++; } arrs[0] = word; return arrs; }
public int[] Push(int[] arrs, int word) { int[] arrayCopy = arrs; arrs = new int[arrs.Length+1]; int b = 1; for (int a = 0; a < arrayCopy.Length; a++) { arrs[b] = arrayCopy[a]; b++; } arrs[0] = word; return arrs; }
public string[] Push(string[] arrs, string word) { string[] arrayCopy = arrs; arrs = new string[arrs.Length+1]; int b = 1; for (int a = 0; a < arrayCopy.Length; a++) { arrs[b] = arrayCopy[a]; b++; } arrs[0] = word; return arrs; }
public float[] RemoveAt(float[] arrs, int num) { float[] arrayCopy = arrs; if (arrs.Length > 0) { arrs = new float[arrs.Length-1]; int b = 0; for (int a = 0; a < arrayCopy.Length; a++) { if (a != num) { arrs[b] = arrayCopy[a]; b++; } } } return arrs; }
public int[] RemoveAt(int[] arrs, int num) { int[] arrayCopy = arrs; if (arrs.Length > 0) { arrs = new int[arrs.Length-1]; int b = 0; for (int a = 0; a < arrayCopy.Length; a++) { if (a != num) { arrs[b] = arrayCopy[a]; b++; } } } return arrs; }
public string[] RemoveAt(string[] arrs, int num) { string[] arrayCopy = arrs; if (arrs.Length > 0) { arrs = new string[arrs.Length-1]; int b = 0; for (int a = 0; a < arrayCopy.Length; a++) { if (a != num) { arrs[b] = arrayCopy[a]; b++; } } } return arrs; }
}
Добавлено (12 января 2018, 18:40) --------------------------------------------- вызывать придется вот так, выглядит как костыль, но лучше не придумал: