Уроки C# Unity / #5 – Работа с объектами и компонентами

preview_player
Показать описание
При помощи скриптов вы можете контролировать поведение игровых объектов. За урок вы научитесь обращаться к объектам, получить их значения и компоненты, а главное выполнять действия с ними. Также вы создадите передвижение и вращение объектов.

✅ Полезные ссылки:

⏰ Тайм-коды:
00:00 - Начало
00:18 - Создание объекта
01:00 - Переменная на объект
02:50 - Работа с объектом
04:00 - Работа с компонентами
06:53 - Поле с ссылкой на компонент
09:46 - Работа со светом
11:25 - Массив объектов
15:00 - Передвижение объектов
23:00 - Вращение объектов
24:10 - Удаление объекта
27:30 - Заключительная часть

✔ -------------

- Уроки от #itProger 👨🏼‍💻
- Все уроки по хештегу #itprogerLessons
Рекомендации по теме
Комментарии
Автор

Ладно, спасибо за уроки, но сейчас уже 4 часа ночи, мне надо спать.

extygm
Автор

Ваши уроки очень полезны и понятны, спасибо!

jboqcek
Автор

Спасибо огромное, очень полезный урок. Думаю в следующих сериях будет ещё много всего интересного.

triplex
Автор

Делаешь очень полезные ролики. Ты мне очень помог. Спасибо

egorpogorelov
Автор

Большое спасибо за ваши отличные уроки!

Veles
Автор

Спасибо огромное, очень полезный урок.

Chitus
Автор

Спасибо большое, с огромным интересом смотрел урок

obama
Автор

Запустил без скорости и DeltaTime, только по X поставил 0.01 - все прекрасно плавно едет:
for (int i = 0; i < target.Length; i++) target[i].Translate(new Vector3(0.01f, 0, 0));
Тем не менее большое спасибо Гоше за доступное и бесплатное объяснение.

katylife
Автор

Ваш канал - находка) спасибо вам за вашу работу)

bobcat
Автор

Очень классно и доходчиво обьясняеш спасибо за курс

russiaproleague
Автор

DeltaTime не сглаживает движение, а делает скорость постоянной. Без DeltaTime скорость будет зависеть от частоты обновления функции Update. То есть в случае просадки кадров, объект замедлится.

ErikRossik
Автор

вот скриптец попроще для движения с точки а в точку б :

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;
}


кидаем его на нужный обьект, и в нем появляется параметр, начальной и конечной позиции + время

valstbr
Автор

А вот в доп.задании к уроку вешаю скрипт на камеру Изначально listener отключаю
private Camera cam;
private AudioListener listener;
private void Awake () {
cam = Camera.main;
listener =
}
private void Update () {
if
listener.enabled = !listener.enabled;
}

только в конце Play галка появляется но снова исчезает Хотя на кнопку жму только раз на середине процесса Так мыслю что в Update все время меняется это значение на противоположное и обратно Зачем тогда такой ненужный код писать в юните? Его как то надо флагами дорабатывать чтоб галка появлялась и не исчезала...

olegmedvedkov
Автор

Подскажите в чем проблема: No Cloud ProjectID Found for Analytics UnityEngine.Debug:LogError (object)?

NashGospodin
Автор

Жду разоблачения от романа сакутина🎉😂❤

vancherk
Автор

Целых три ошибки: 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;
}
}

mrdantis
Автор

Выскакивает ошибка, не могу понять причину: Assets/Basics.cs(27, 13): error CS1955: Non-invocable member 'Basics.transforms' cannot be used like a method.

toddlants
Автор

А как так получается если мы циклом к примеру удаляем все объекты или просто отключаем их, то при удалении объекта на котором находится скрипт сам скрипт продолжает работать? Разве он не должен вместе с объектом удалится или деактивироваться? Ладно если объект стоит последним в массиве объектов, а если в середине? Как тогда гарантированно запустить скрипт для всех объектов массива?

MariMaxVR
Автор

Подскажите пожалуйста кто знает у меня 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. Что делать?

jvrtpwx
Автор

15:46 у меня когда навожусь на objs на строке 12 красным подчёркнуто objs и пишет: "(Поле) Transform[] Basics.objs Тип "Basics" уже содержит определение для "objs".
Как это починить?

Это же выдают всё objs на строках: 12, 23 и 24. Плюс на 24 строке [i] почему то ошибка: "Имя "i" не существует в текущем контексте. [Assembly-CSharp]csharp(CS0103)",
при том что весь скрипт написан точно как в видео, и первые 15 минут всё получалось и работало как у тебя.
Все плагины что ты называл в начале курса я скачал, и юнити последней версии (22.1.3.f1).

triplex