Понедельник, 08 Сентября 2025, 20:20

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
seamanДата: Суббота, 18 Июля 2015, 01:13 | Сообщение # 381 | Тема: Реализация столкновений в 2D танчиках
старожил
Сейчас нет на сайте
Цитата
Замечу, что для снарядов не подходит "Box Collider 2D"

Да что Вы говорите? Что ж я такое неправильное делаю, что у меня они нормально работают? Объясните где я ошибаюсь плиз.
seamanДата: Суббота, 18 Июля 2015, 01:11 | Сообщение # 382 | Тема: Передача значения переменной в другой скрипт
старожил
Сейчас нет на сайте
Цитата
Я в принцепе все понял

Похоже что это не так - ничего не понял.
Вот скажите - нафига еще раз получать GameController в строке: GetComponent<GameController>().AddScore(PointsValue); ?
Вы что считаете, что этот скрипт висит на всех объектах? Или Вы не понимаете на каком объекте ищет компонент метод GetComponent?
PS^ для кописатеров: замените
GetComponent<GameController>().AddScore(PointsValue);
на
gameController.AddScore(PointsValue);
seamanДата: Четверг, 16 Июля 2015, 19:51 | Сообщение # 383 | Тема: Вопрос-[ответ] по Unity
старожил
Сейчас нет на сайте
Еще раз - чем Вам уроки на этом сайте не нравятся?
seamanДата: Четверг, 16 Июля 2015, 18:33 | Сообщение # 384 | Тема: Вопрос-[ответ] по Unity
старожил
Сейчас нет на сайте
Поиск на сайте!
seamanДата: Четверг, 16 Июля 2015, 17:56 | Сообщение # 385 | Тема: Корявые модели формата xps в fbx
старожил
Сейчас нет на сайте
Явно инвертированы нормали на отдельных полигонах. Лучше исправлять нормали в Блендере. Проще, но не правильно, использовать шейдер, который отображает обе стороны полигона (Cull off)/
seamanДата: Среда, 15 Июля 2015, 19:30 | Сообщение # 386 | Тема: Передача значения переменной в другой скрипт
старожил
Сейчас нет на сайте
Поторопился, не подумал. Мы оба не правы.
Что делает иф? Он проверяет истинность выражения внутри скобок. Т.е. выражение внутри иф должно иметь тип bool. Т.к. там стоит GameObject компилятор пытается привести этот GameObject к типу bool и ему это удается! Почему? Потому что в классе UnityEngine.Object есть такое определение:
Код
        public static implicit operator bool(UnityEngine.Object exists)
           {
               return !CompareBaseObjects(exists, null);
           }

Оно позволяет неявно любой GameObject преобразовать в bool.
Попробуй проделать тоже самое с другим классом, который не произведен от UnityEngine.Object. Например:
Код
        public class Probe
           {       
           }
...
           Probe p = new Probe();
           if(p){}
           if(p == true){} // Так никто не пишет - это чушь....

Получишь в if ошибку. Почему? Потому что в классе Probe нет оператора преобразования в bool.
На самом деле if(go) это сокращение от if((bool)go)
____
Однако говорить, что if(go) это сокращенное от if(go==true) это совсем неверно. Продолжи дальше:
if(go==true) это сокращенное от if((go==true)==true)
if((go==true)==true) это сокращенное от if(((go==true)==true)==true)
и так до бесконечности.
Не надо никакого сравнения с true. Определение if просто предполагает проверку на true выражения в скобках.


Сообщение отредактировал seaman - Среда, 15 Июля 2015, 19:31
seamanДата: Среда, 15 Июля 2015, 13:12 | Сообщение # 387 | Тема: Реализация столкновений в 2D танчиках
старожил
Сейчас нет на сайте
Цитата
Я расположил спрайты в проскости XZ.

Вы трехмерную что ли игру делаете? Зачем вообще в какой то плоскости самому размещать спрайты?
Цитата
Я убрал со спрайтов галочки IsKinematic, выставил GravityScale в ноль, выставил позиции спрайтов на одинаковой высоте, но спрайты проходять друг через друга и не упираются друг в друга. Перемещаю я их с помощью transform.Translate(...)

У всех работает - у Вас нет. Не странно?
Сделайте нормальный 2D проект. Спрайты в одном слое сортировки - Default. Z вообще не трогайте.
Вы уроки смотрели?
seamanДата: Среда, 15 Июля 2015, 08:47 | Сообщение # 388 | Тема: Реализация столкновений в 2D танчиках
старожил
Сейчас нет на сайте
В ригидбоди констрайнс.
seamanДата: Среда, 15 Июля 2015, 01:06 | Сообщение # 389 | Тема: Передача значения переменной в другой скрипт
старожил
Сейчас нет на сайте
Цитата
if(go) это сокращенное от if(go==true)

Это неверно.
Это сокращение от if(go != null)
seamanДата: Среда, 15 Июля 2015, 00:37 | Сообщение # 390 | Тема: Реализация столкновений в 2D танчиках
старожил
Сейчас нет на сайте
Я плюнул на то, что танки могут сдвинуть друг друга. По крайней мере пока.
seamanДата: Вторник, 14 Июля 2015, 19:38 | Сообщение # 391 | Тема: Секретная фича в Unity 5
старожил
Сейчас нет на сайте
"У Вас неправильный мед!"
У меня при нажатии Left Ctrl + O открывается окно загрузки сцены и кликнуть куда то уже нельзя..
На какой минуте хоть смотреть то?
seamanДата: Вторник, 14 Июля 2015, 19:32 | Сообщение # 392 | Тема: Реализация столкновений в 2D танчиках
старожил
Сейчас нет на сайте
Цитата
стоит BoxCollider2D (установлен флаг IsTrigger)

И как Вы собираетесь сталкивать триггеры?
Цитата
и Rigidbody2D (установлен флаг IsKinematic)

Это тоже ошибка - кинематик нельзя ставить.
seamanДата: Понедельник, 13 Июля 2015, 23:09 | Сообщение # 393 | Тема: Передача значения переменной в другой скрипт
старожил
Сейчас нет на сайте
Цитата MANMANA ()
скрипты в студию, че гадать?

А действительно - что гадать? И так все ясно, без скриптов...
GameObject.GetComponent<Shoot> пишется не так.
Как? Почитайте мануал...
seamanДата: Понедельник, 13 Июля 2015, 13:14 | Сообщение # 394 | Тема: Анимация в 2D срабатывает не сразу после нажатия клавиши
старожил
Сейчас нет на сайте
Цитата
Напишите, пожалуйста, есть ли там палочка.

Да, проморгал - есть.
Цитата
У вас нет состояний покая для танка. Как вы их собираетесь добавлять? Если есть, то покажите, пожалуйста, где.

Нет. Я их не думал добавлять. Скорее всего сделаю - просто обнулю speed, а когда едет speed = 1;
seamanДата: Понедельник, 13 Июля 2015, 12:07 | Сообщение # 395 | Тема: Анимация в 2D срабатывает не сразу после нажатия клавиши
старожил
Сейчас нет на сайте
Цитата
События обозначаются палочками. Нужно выделить палочку и нажать Delete.

Знаю. Только я их у тебя почему то не нашел...
seamanДата: Понедельник, 13 Июля 2015, 11:38 | Сообщение # 396 | Тема: Анимация в 2D срабатывает не сразу после нажатия клавиши
старожил
Сейчас нет на сайте
Цитата
У вас есть предположение почему она случается?

Когда создавали анимации случайно нажали кнопку добавления события. Я в проекте не смог найти где это событие. Если найдете - просто удалите. Но проще - заново пересоздать все анимации.
Цитата
Я не понимаю, что в этом плохого.

Ну на самом деле ничего плохого. Только зачем такая длительность? Один кадр - он и есть один кадр...
seamanДата: Понедельник, 13 Июля 2015, 10:55 | Сообщение # 397 | Тема: Анимация в 2D срабатывает не сразу после нажатия клавиши
старожил
Сейчас нет на сайте
Вообще я не ждал ответов. Что у Вас заанимации, что в аниматоре я и сам вижу.
Что такое анимация?- изменение состояния. Какое изменение в анимациях - PlayerIdleUp, PlayerIdleDown? Никакого! Там один кадр и ничего не меняется. Что это за анимация? Потому и говорю - в этих "анимациях" нет никаких анимаций.
А вот длится этот кадр - секунду. И пока не пройдет эта секунда в другое состояние танк не перейдет. Уберите галки HasExitTime у всех транзишн.
"Анимации" PlayerIdleUp, PlayerIdleDown и аналогичные имхо просто совершенно не нужны.

А лучше - смотрите мои уроки. Там как раз танчики делаем.

ЗЫ: продолжение уроков думаю будет завтра.
seamanДата: Понедельник, 13 Июля 2015, 01:32 | Сообщение # 398 | Тема: Анимация в 2D срабатывает не сразу после нажатия клавиши
старожил
Сейчас нет на сайте
Во первых у Idle как я понял как таковой анимации вообще нет, а сначала переходит именно на нее.
Во вторых анимации с "Idle" намного дольше чем без него, а у транзишн стоит галка HasExitTime.
Следовательно пока не закончится Idle - Move не запустится. А у Idle нет анимации. Поэтому кажется что анимация не запустилась.
Видимо из-за этого беда. Убери галку.

Вообще непонятно - зачем Idle "анимации"?

PS^ цвет танчика проще менять программно...
PPS: Вас не раздражает эта ошибка?


Сообщение отредактировал seaman - Понедельник, 13 Июля 2015, 01:35
seamanДата: Воскресенье, 12 Июля 2015, 12:30 | Сообщение # 399 | Тема: Остановить анимацию Animator
старожил
Сейчас нет на сайте
GetComponent<Animator>().enabled = false;
GetComponent<Animator>().speed = 0;
seamanДата: Пятница, 10 Июля 2015, 19:36 | Сообщение # 400 | Тема: Вопрос-[ответ] по Unity
старожил
Сейчас нет на сайте
Цитата pixeye ()
делается так.

Quaternion.rot = transform.rotation;
rot.y = gameObject.transform.rotation.y;
transform.rotation = rot;

Добавлено (10 июля 2015, 19:33)
---------------------------------------------

Цитата ivan2009 ()
кубик дрожит

Ну во первых - вынесите проверку луча из if(walk)
Во вторых выключайте walk, когда расстояние до цели меньше заданного:
Код
Vector3 dir = TargetToMove - transform.position;
Vector3 dirNormal = dir.normalize;
controller.SimpleMove (posMove *   Time.deltaTime * speed  );
if(dir.magnitude < 0.01f) walk = false;

Добавлено (10 июля 2015, 19:36)
---------------------------------------------

Цитата ivan2009 ()
хотелось бы и самому его покрутить.

Как крутить - смотрите мануал: Мануал
Поиск:

Все права сохранены. GcUp.ru © 2008-2025 Рейтинг