Запустил без скорости и DeltaTime, только по X поставил 0.01 - все прекрасно плавно едет: for (int i = 0; i < target.Length; i++) target[i].Translate(new Vector3(0.01f, 0, 0)); Тем не менее большое спасибо Гоше за доступное и бесплатное объяснение.
DeltaTime не сглаживает движение, а делает скорость постоянной. Без DeltaTime скорость будет зависеть от частоты обновления функции Update. То есть в случае просадки кадров, объект замедлится.
вот скриптец попроще для движения с точки а в точку б : public Vector2 startPosition; public Vector2 endPosition; public float step; private float progress;
void Start() { transform.position = startPosition; } private void FixedUpdate() { transform.position = Vector2.Lerp(startPosition, endPosition, progress); progress += step; } кидаем его на нужный обьект, и в нем появляется параметр, начальной и конечной позиции + время
Слишком упрощено. Это может оказать медвежью услугу новичкам. Про тот же deltaTime. deltaTime это время в секундах, прошедшее с момента отрисовки предыдущего кадра, а не сглаживание, сглаживание тут скорее побочный эффект ). Соответственно понимать это следует так: я хочу повернуть объект на 90 градусов за 1 секунду, значит если я умножу Vector(0, 90, 0) на дельту, то я ровно это и получу. Если мне надо за 2 секунды, то дельту можно поделить на 2. Если каждый кадр рисуется 100 мсек, то произойдет 10 вращений по 9 градусов. Если скорость отрисовки 10 мсек, то произойдет 100 вращений по 0.9 градусов. Что в сумме за секунду даст 90.Так же стоит учитывать, что за секунду скорость отрисовки кадров может меняться, например из-за просадок FPS, или если у вас не включена вертикальная синхронизация.
А вот в доп.задании к уроку вешаю скрипт на камеру Изначально listener отключаю private Camera cam; private AudioListener listener; private void Awake () { cam = Camera.main; listener = cam.GetComponent(); } private void Update () { if (Input.GetKey(KeyCode.LeftShift)) listener.enabled = !listener.enabled; } только в конце Play галка появляется но снова исчезает Хотя на кнопку жму только раз на середине процесса Так мыслю что в Update все время меняется это значение на противоположное и обратно Зачем тогда такой ненужный код писать в юните? Его как то надо флагами дорабатывать чтоб галка появлялась и не исчезала...
Привет Гоша, делаю змейку в юнити и не могу понять, при создание хвоста хочу его ссылать на игрока а не что бы он появлялся и не взамиодействовал с игроком
15:46 у меня когда навожусь на objs на строке 12 красным подчёркнуто objs и пишет: "(Поле) Transform[] Basics.objs Тип "Basics" уже содержит определение для "objs". [Assembly-CSharp]csharp(CS0102)" Как это починить? Это же выдают всё objs на строках: 12, 23 и 24. Плюс на 24 строке [i] почему то ошибка: "Имя "i" не существует в текущем контексте. [Assembly-CSharp]csharp(CS0103)", при том что весь скрипт написан точно как в видео, и первые 15 минут всё получалось и работало как у тебя. Все плагины что ты называл в начале курса я скачал, и юнити последней версии (22.1.3.f1).
Я сам нашел в чём проблема, в строке 12 не заметил что ты потом поменял objs на transforms, а в строке 23 я в конце поставил ; от чего [i] и не виден был для строки 24. Надеюсь этот комент кому-то тоже поможет)
10:00 в видео говорил что можем обратиться к любому свойству у компоненту,ага ,решил вместо position написать rotation,ведь это тоже свойство Transform,в итоге ошибка "не удаётся неявно преобразовать тип UnityEngine.Vector3 в UnityEngine.Quaternion,и вообще автор может умолчать об каких то изменениях в коде,4 месяца назад обучался языку программирования С# у него,когда дошло дело до создания новых файлов,я помню у меня выходила ошибка которую не мог решить пол дня,а потом мне в комментах подсказали что надо ещё внести одно изменение в коде,которое сам Itprogger не показал,а мы должны сами догадаться когда у нас ошибка будет , спасибо 👍
Круто, есть только один вопрос по последней ошибке, вывел цикл if чтобы если нету предмета он пропускался if(transforms[i] == null) continue; но всё ровно он не пропускается и юнити выдаёт ошибку "MissingReferenceException"
Выскакивает ошибка, не могу понять причину: Assets/Basics.cs(27,13): error CS1955: Non-invocable member 'Basics.transforms' cannot be used like a method.
@@yuliyaparamonova5596 Не регистрозависимый язык это когда ты можешь написать одну и туже команду не обращая внимание на регистр букв как: Transform = transform, а C# является регистрозависимым тоесть: Transform != transform и это по сути 2 разных слова.
Целых три ошибки: CS0201(Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement) и 2 CS0103(The name 'transforms' does not exist in the current context). Немогу понять почему. Помогите пожалуйста. Вот мой код: public GameObject[] objs = new GameObject[2]; public Transform[] pos = new Transform[3]; public float speed = 5f; private void Start() {
Ты дал(а) имя своему массиву "pos", во второй строке public Transform[] pos(вот тут) = new Transform[3]; А внизу, в условии цикла for, ты пытаешься узнать размер массива(Length) переменной под именем transform. А такую переменную ты не создал! У тебя должно быть pos.Length P.S. Прошло восемь дней, ты наверное уже узнал(а).
Насчет того что бы компоненты сразу выносить в отдельные переменные - как по мне бред полный. Используй метод старт как "конструктор" (кст тут конструкторы классов есть?) и там уже разложи по отдельным переменным как тебе угодно и куда угодно. "Так удобнее" - если только тебе так удобнее! И еще интересно где хранятся привязки ссылок на переменные? их же наверно можно руками прописывать, а не мышкой таскать, если будет много объектов - за*бешься
Здравствуйте. Простите, что поздно ответил. Недавно, только начал изучать программирование. Чтобы направление движения не менялось из-за вращения, разделите ваш скрипт на два скрипта. В одном скрипте должно быть вращение, в другом - движение. Далее, уберите скрипт с движением и вращением с Вашего объекта. Затем, дублируйте объект, и у Вас получится два одинаковых объекта. На один объект повесьте скрипт с движением, на другой - с вращением. Потом создайте ещё один скрипт, откройте его и перед методом Start напишите: public Transform transforma; public Transform transformb; Затем в методе Update напишите: transforma.position = transformb.position И сохраните скрипт. Потом повесьте скрипт на любой объект. Выберите объект, на который повесили скрипт и перенесите из иерархии два одинаковых объекта(один объект - в окно transforma, другой - в окно transformb). Потом выберите объект со скриптом для движения и отключите mesh renderer. Вот и всё). Далее, запускайте игру, и если что-то пойдёт не так - пишите.
А как так получается если мы циклом к примеру удаляем все объекты или просто отключаем их, то при удалении объекта на котором находится скрипт сам скрипт продолжает работать? Разве он не должен вместе с объектом удалится или деактивироваться? Ладно если объект стоит последним в массиве объектов, а если в середине? Как тогда гарантированно запустить скрипт для всех объектов массива?
Возможно, Вам нужно в конце всего программирования на следующей строчке добавить метод OnDestroy и после него на следующей строчке поставить вот такие скобки {} затем поставить курсор внутри них и нажать клавишу Enter два раза, чтобы между скобками оставалась целая пустая строка, затем на этой строке обратиться к вашему скрипту и написать SetActive(false). Можно также обратиться к вашему скрипту и написать SetActive(false) после той строчки, где ваш объект уничтожается или деактивируется.
Наведите мышку на слово "Файл в левом верхнем углу и нажмите "сохранить". Либо зажмите клавишу Ctrl и пока держите нажмите на клавишу S либо на клавишу Ы. Если же вы программируете на макбуке нужно сделать всё тоже самое, только вместо Ctrl нужно зажать клавишу command
Всем привет. Есть такой вопрос, при удалении объекта в 10f у меня он сразу удаляется, а если -10f то удаляется именно после 10 координаты, не могу понять в чем прблема.,.
Подскажите пожалуйста кто знает у меня transforms[i].Translate(new Vector3(-1, 0, 0) * speed * Time.deltaTime); и transforms[i].Rotate(new Vector3(-1, 0, 0) * rotateSpeed * Time.deltaTime); работают только по отдельности, если пишу их вместе выдает ошибку error CS0103: The name 'i' does not exist in the current context. Что делать?
ох. У меня была похожая проблема в кодах по проще. Но думаю у тебя то же самое. Ты видимо не в той среде создал переменную i. Допустим ты создал i вне метода start(){} и решил её использовать внутри этого метода. Выйдет ошибка. Тебе нужно создать i в той среде в которой ты её используешь. Жаль, что не могу тебе написать решения изза недостатка знаний, но надеюсь я тебе помог или подсказал путь к решению. Но думаю ты решил эту проблему уже, так что задам вопрос. Как ты её решил????
@@mrdantis7279 А точнее после for(.....) нужно не забыть всю кучу последующих операторов обернуть скобками {......} Тогда ошибок не вылетает. Спасибо за наводкую
Всё в кашу смешали... Предыдущие четыре урока понял, а тут сначала сделаем, потом объясним зачем это сделаем, а ещё мы можем сделать так,так,так и вот так, а кстати, вообще это не обязательно, ведь можно сразу обратиться к параметру... Да БЛИН! Притормозите и расскажите всё про transform тогда - что вообще можно сделать, а то слушаешь-слушаешь и бац! - оказывается есть класс Time, как будто я о нём уже знал...
Если хотите знать как оно устроено, то может почитаете библиотечки, погуглите немножечко?) Если он будет объяснять всю составляющую от C#, то на содержание юнити не хватит времени и ролик будет на полтора часа) Просто надо не смотреть, а повторять, набирать ручками бакафки в редактор, а не в комменты, и эксперементировать - тогда будет все понятно)
Мне кажется что изучение с нуля это очень громкое название первого видео ведь изучения с нуля предполагает что и до этого ты не знал не одного языка программирования. И мне кажется что понять эти видео человеку который ни разу не писал код будет немного затруднительно.
Ладно, спасибо за уроки, но сейчас уже 4 часа ночи, мне надо спать.
4 часа - это не ночь, а утро уже...
@@ANTROXIK утро в 6
@@NOTA-u2p вы спите?
Хехехе, 2 часа ночи)))
Час ночи,обучаюсь
Ваши уроки очень полезны и понятны, спасибо!
Спасибо огромное, очень полезный урок. Думаю в следующих сериях будет ещё много всего интересного.
Делаешь очень полезные ролики. Ты мне очень помог. Спасибо
Спасибо огромное, очень полезный урок.
Большое спасибо за ваши отличные уроки!
Ваш канал - находка) спасибо вам за вашу работу)
Спасибо большое, с огромным интересом смотрел урок
Запустил без скорости и DeltaTime, только по X поставил 0.01 - все прекрасно плавно едет:
for (int i = 0; i < target.Length; i++) target[i].Translate(new Vector3(0.01f, 0, 0));
Тем не менее большое спасибо Гоше за доступное и бесплатное объяснение.
DeltaTime не сглаживает движение, а делает скорость постоянной. Без DeltaTime скорость будет зависеть от частоты обновления функции Update. То есть в случае просадки кадров, объект замедлится.
Или FixedUpdate
Лучшие уроки по юнити
Очень классно и доходчиво обьясняеш спасибо за курс
Жду разоблачения от романа сакутина🎉😂❤
АХАХАХ В ТОЧКУ
Гоша, красавчик!
Полезно!
вот скриптец попроще для движения с точки а в точку б :
public Vector2 startPosition;
public Vector2 endPosition;
public float step;
private float progress;
void Start()
{
transform.position = startPosition;
}
private void FixedUpdate()
{
transform.position = Vector2.Lerp(startPosition, endPosition, progress);
progress += step;
}
кидаем его на нужный обьект, и в нем появляется параметр, начальной и конечной позиции + время
Слишком упрощено. Это может оказать медвежью услугу новичкам. Про тот же deltaTime. deltaTime это время в секундах, прошедшее с момента отрисовки предыдущего кадра, а не сглаживание, сглаживание тут скорее побочный эффект ). Соответственно понимать это следует так: я хочу повернуть объект на 90 градусов за 1 секунду, значит если я умножу Vector(0, 90, 0) на дельту, то я ровно это и получу. Если мне надо за 2 секунды, то дельту можно поделить на 2. Если каждый кадр рисуется 100 мсек, то произойдет 10 вращений по 9 градусов. Если скорость отрисовки 10 мсек, то произойдет 100 вращений по 0.9 градусов. Что в сумме за секунду даст 90.Так же стоит учитывать, что за секунду скорость отрисовки кадров может меняться, например из-за просадок FPS, или если у вас не включена вертикальная синхронизация.
Спасибо вам большое! Вы мне открыли глаза! Так бы мне пришлось записываться на платные курсы, но вы избавили меня от этой необходимости.
Спасибо за видео
Огромное спасибо!!!
золотой канал
А вот в доп.задании к уроку вешаю скрипт на камеру Изначально listener отключаю
private Camera cam;
private AudioListener listener;
private void Awake () {
cam = Camera.main;
listener = cam.GetComponent();
}
private void Update () {
if (Input.GetKey(KeyCode.LeftShift))
listener.enabled = !listener.enabled;
}
только в конце Play галка появляется но снова исчезает Хотя на кнопку жму только раз на середине процесса Так мыслю что в Update все время меняется это значение на противоположное и обратно Зачем тогда такой ненужный код писать в юните? Его как то надо флагами дорабатывать чтоб галка появлялась и не исчезала...
Можно дополнительные уроки?(
Привет Гоша, делаю змейку в юнити и не могу понять, при создание хвоста хочу его ссылать на игрока а не что бы он появлялся и не взамиодействовал с игроком
привет,ответь на вопрос если не сложно)весь курс C# посмотрел?просто думаю до конца смотреть или не стоит(
@@desonance смотрел весь, ну можешь не смотреть курс такой себе
@@morik777 т.е стоит сразу перейти к unity & C# курсам?
@@desonance сначала выучи c# потом unity c#
@@morik777 а что делать если я уже знаю основы c# и ооп, мне нужно сейчас изучать что именно для создания игры?
Что делать, если нихрена эти коды в скрипте не работают? Хотя переменные, массивы создаются, все остальные методы не работают!
видосам два года, мб чет за это время поменялось
Убедись,скачал ты вообще расширения в code?
@@esthherq нет
15:46 у меня когда навожусь на objs на строке 12 красным подчёркнуто objs и пишет: "(Поле) Transform[] Basics.objs Тип "Basics" уже содержит определение для "objs". [Assembly-CSharp]csharp(CS0102)"
Как это починить?
Это же выдают всё objs на строках: 12, 23 и 24. Плюс на 24 строке [i] почему то ошибка: "Имя "i" не существует в текущем контексте. [Assembly-CSharp]csharp(CS0103)",
при том что весь скрипт написан точно как в видео, и первые 15 минут всё получалось и работало как у тебя.
Все плагины что ты называл в начале курса я скачал, и юнити последней версии (22.1.3.f1).
Я сам нашел в чём проблема, в строке 12 не заметил что ты потом поменял objs на transforms, а в строке 23 я в конце поставил ; от чего [i] и не виден был для строки 24.
Надеюсь этот комент кому-то тоже поможет)
@@triplex3459 Я там тоже что-то стоял и подумал, видео было на паузе, думал и смотрел всё ли похоже? А потом увидел в чем была проблема
26:45 разве не лучше использовать if (transforms[i] != null) { }
10:00 в видео говорил что можем обратиться к любому свойству у компоненту,ага ,решил вместо position написать rotation,ведь это тоже свойство Transform,в итоге ошибка "не удаётся неявно преобразовать тип UnityEngine.Vector3 в UnityEngine.Quaternion,и вообще автор может умолчать об каких то изменениях в коде,4 месяца назад обучался языку программирования С# у него,когда дошло дело до создания новых файлов,я помню у меня выходила ошибка которую не мог решить пол дня,а потом мне в комментах подсказали что надо ещё внести одно изменение в коде,которое сам Itprogger не показал,а мы должны сами догадаться когда у нас ошибка будет , спасибо 👍
Если бы пострел до конца видео, таких бы проблем не было))
Круто, есть только один вопрос по последней ошибке, вывел цикл if чтобы если нету предмета он пропускался
if(transforms[i] == null)
continue; но всё ровно он не пропускается и юнити выдаёт ошибку "MissingReferenceException"
Весь цикл for сюда кинь
@@MrLimpopoho давным довно решил проблему
Попробуй обернуть весь цикл
Подскажите в чем проблема: No Cloud ProjectID Found for Analytics UnityEngine.Debug:LogError (object)?
Выскакивает ошибка, не могу понять причину: Assets/Basics.cs(27,13): error CS1955: Non-invocable member 'Basics.transforms' cannot be used like a method.
тут ошибка в орфографии кода видимо. Ты видать не внимательно писал код и допустил такую ошибку
что делать если юнити говорит что нет функции "transform"?
с большой буквы нужно писать(Transform), C# - регистрозависимый язык
@@sedy22 а что есть не регистрозависимый язык?
@@yuliyaparamonova5596 Не регистрозависимый язык это когда ты можешь написать одну и туже команду не обращая внимание на регистр букв как: Transform = transform, а C# является регистрозависимым тоесть: Transform != transform и это по сути 2 разных слова.
Люди, а у какой темы вс кода такая подсветка?
20:30 кстати можно просто поставить скорость/speed 0.001
Можно, но величина вашей поправки Speed сильно зависит от частоты кадров.
@@renkyMayers Тогда можно все записать в FixUpdate
Целых три ошибки: CS0201(Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement) и 2 CS0103(The name 'transforms' does not exist in the current context).
Немогу понять почему. Помогите пожалуйста.
Вот мой код:
public GameObject[] objs = new GameObject[2];
public Transform[] pos = new Transform[3];
public float speed = 5f;
private void Start()
{
}
private void Update() {
for(int i = 0; i < transforms.Length; i++){
transforms[i].Translate(new Vector3(1,0,0)) * speed * Time.deltaTime;
}
}
Ты дал(а) имя своему массиву "pos", во второй строке
public Transform[] pos(вот тут) = new Transform[3];
А внизу, в условии цикла for, ты пытаешься узнать размер массива(Length) переменной под именем transform. А такую переменную ты не создал! У тебя должно быть pos.Length
P.S. Прошло восемь дней, ты наверное уже узнал(а).
Будет ли обновление по урокам Vue.js? Тот курс уже не актуален=(
Согласен, очень хочется новый курс
Откуда вы взяли массив transforms?
какой нафиг массив?!
@@Imudonnn обычный
в середине видео создавали его
это просто его название(можно изменить имя)
уроки по юнити как то очень просто проходят по сравнению с уроками по шарпу
у меня все ровно на оборот
потому что тут хотя бы виден результат, а при изучении с# нам приходится работать со скучной командной строкой
Помогите пожалуйста 😢у меня переменная public в инджектери не показывается помогите
Какая переменная?
16:55 каким сочетание клавиш ты закомментировал все строчки сразу?
ctrl + /
Насчет того что бы компоненты сразу выносить в отдельные переменные - как по мне бред полный. Используй метод старт как "конструктор" (кст тут конструкторы классов есть?) и там уже разложи по отдельным переменным как тебе угодно и куда угодно. "Так удобнее" - если только тебе так удобнее! И еще интересно где хранятся привязки ссылок на переменные? их же наверно можно руками прописывать, а не мышкой таскать, если будет много объектов - за*бешься
Подскажите, пожалуйста, как исправить ошибку. При вращении объекта вращаются и его оси координат, что приводит к другому направлению движения.
Здравствуйте. Простите, что поздно ответил. Недавно, только начал изучать программирование.
Чтобы направление движения не менялось из-за вращения, разделите ваш скрипт на два скрипта. В одном скрипте должно быть вращение, в другом - движение. Далее, уберите скрипт с движением и вращением с Вашего объекта. Затем, дублируйте объект, и у Вас получится два одинаковых объекта. На один объект повесьте скрипт с движением, на другой - с вращением. Потом создайте ещё один скрипт, откройте его и перед методом Start напишите:
public Transform transforma;
public Transform transformb;
Затем в методе Update напишите:
transforma.position = transformb.position
И сохраните скрипт. Потом повесьте скрипт на любой объект. Выберите объект, на который повесили скрипт и перенесите из иерархии два одинаковых объекта(один объект - в окно transforma, другой - в окно transformb). Потом выберите объект со скриптом для движения и отключите mesh renderer.
Вот и всё). Далее, запускайте игру, и если что-то пойдёт не так - пишите.
А как так получается если мы циклом к примеру удаляем все объекты или просто отключаем их, то при удалении объекта на котором находится скрипт сам скрипт продолжает работать? Разве он не должен вместе с объектом удалится или деактивироваться? Ладно если объект стоит последним в массиве объектов, а если в середине? Как тогда гарантированно запустить скрипт для всех объектов массива?
Возможно, Вам нужно в конце всего программирования на следующей строчке добавить метод OnDestroy и после него на следующей строчке поставить вот такие скобки {} затем поставить курсор внутри них и нажать клавишу Enter два раза, чтобы между скобками оставалась целая пустая строка, затем на этой строке обратиться к вашему скрипту и написать SetActive(false). Можно также обратиться к вашему скрипту и написать SetActive(false) после той строчки, где ваш объект уничтожается или деактивируется.
27:00 ЕТО ПРЕДАТЕЛЬСТВО
Писать научись
А можно это все делать на ноудбуке? Или только на хорошем железе..? компьютере?
можно даже на простеньком ноуте, но грузится все будет чуть дольше
А как скрипт сохранять? Или я что-то прослушал?
Наведите мышку на слово "Файл в левом верхнем углу и нажмите "сохранить". Либо зажмите клавишу Ctrl и пока держите нажмите на клавишу S либо на клавишу Ы. Если же вы программируете на макбуке нужно сделать всё тоже самое, только вместо Ctrl нужно зажать клавишу command
Привет 20:03 здесь у меня пишется, что не возможно совместить ("transforms.lenght") что делать?
length*
Всем привет. Есть такой вопрос, при удалении объекта в 10f у меня он сразу удаляется, а если -10f то удаляется именно после 10 координаты, не могу понять в чем прблема.,.
возможно уже поздно но напиши posX > 10f
@@JSpeed3 спасибо, я уже решил проблему😉
@@JSpeed3 Спс мне помог.
никогда не поздно@@JSpeed3 Спасибо) Видать мозги закипели во время просмотра. Прочитал твой коммент, поправил - сижу думаю - блин, а точно!
Подскажите пожалуйста кто знает у меня transforms[i].Translate(new Vector3(-1, 0, 0) * speed * Time.deltaTime); и transforms[i].Rotate(new Vector3(-1, 0, 0) * rotateSpeed * Time.deltaTime); работают только по отдельности, если пишу их вместе выдает ошибку error CS0103: The name 'i' does not exist in the current context. Что делать?
ох. У меня была похожая проблема в кодах по проще. Но думаю у тебя то же самое. Ты видимо не в той среде создал переменную i. Допустим ты создал i вне метода start(){} и решил её использовать внутри этого метода. Выйдет ошибка. Тебе нужно создать i в той среде в которой ты её используешь. Жаль, что не могу тебе написать решения изза недостатка знаний, но надеюсь я тебе помог или подсказал путь к решению. Но думаю ты решил эту проблему уже, так что задам вопрос. Как ты её решил????
@@mrdantis7279 А точнее после for(.....) нужно не забыть всю кучу последующих операторов обернуть скобками {......} Тогда ошибок не вылетает. Спасибо за наводкую
Привет Гоша,а на каком языке программирования сделан сайт it proger?
Html, CSS, java script
@@Олег-ф8ъ2л и наверное серверный язык (питон, джава и т.д
@@Олег-ф8ъ2л штмл не язык программирования
@@alosha_na7475 умник ?
@@Leila.s_father да
Всё в кашу смешали... Предыдущие четыре урока понял, а тут сначала сделаем, потом объясним зачем это сделаем, а ещё мы можем сделать так,так,так и вот так, а кстати, вообще это не обязательно, ведь можно сразу обратиться к параметру...
Да БЛИН! Притормозите и расскажите всё про transform тогда - что вообще можно сделать, а то слушаешь-слушаешь и бац!
- оказывается есть класс Time, как будто я о нём уже знал...
да тоже стало не понятно....
Полностью согласен. Я конечно что то да понял, но то что я запомнил оставляет желать лучшего и я никак не могу как то по другому задействовать это.
Если хотите знать как оно устроено, то может почитаете библиотечки, погуглите немножечко?)
Если он будет объяснять всю составляющую от C#, то на содержание юнити не хватит времени и ролик будет на полтора часа)
Просто надо не смотреть, а повторять, набирать ручками бакафки в редактор, а не в комменты, и эксперементировать - тогда будет все понятно)
А че через точку к transform оьратиться нельзя?
Всё понятно, но нихрена не понятно
наверное поздно но практика практика и еще раз практика
@@МахПопов-н6з Ни капли не очевидный совет, спасибо
Мне кажется что изучение с нуля это очень громкое название первого видео ведь изучения с нуля предполагает что и до этого ты не знал не одного языка программирования.
И мне кажется что понять эти видео человеку который ни разу не писал код будет немного затруднительно.
если ты послушаешь предыдущие видео он говорил что перед тем как начать выучать язык для юнити нужно выучить сам С# а потом прейти к этим видео
20:06
куб жалко
У меня не работает момент с передвижением объектов хотя делал как на видео.
скорее всего у тебя орфографическая ошибка
про засирание проекта множеством одних и тех же сущностей - в чем проблема с обьекта того же брать трансформ. obj.transform - так же вызывается