Size: a a a

2020 May 05

А

Андрей in unity3d.ru
Bars0_o [SpamBlock]
В настройках проекта ты можешь настроить какие слои взаимодействуют между собой а какие нет
Что то, типа, один коллайдер реагирует на другой только, если ты так настроишь по тегам, да? Игрок проходит сквозь стену, а враг нет, например, так?
источник

B[

Bars0_o [SpamBlock] in unity3d.ru
Андрей
Что то, типа, один коллайдер реагирует на другой только, если ты так настроишь по тегам, да? Игрок проходит сквозь стену, а враг нет, например, так?
По слоям
источник

А

Андрей in unity3d.ru
Bars0_o [SpamBlock]
По слоям
Да, случайно
источник

B[

Bars0_o [SpamBlock] in unity3d.ru
Да, именно так
источник

А

Андрей in unity3d.ru
Спасибо
источник

ДО

Денис Олейник... in unity3d.ru
Mark Tsemma
GetComponent<Image>().sprite
Спасибо
источник

КГ

Кирилл Грушевич... in unity3d.ru
Bars0_o [SpamBlock]
Слои для физики
Так же для рендеринга, настройках камеры можно отключать отрисовки определённых слоев
источник

DZ

D. Zosym in unity3d.ru
как сделать так, чтобы в определённый момент камера смотрела из-за спины с определённым оффсетом объекта ? вот к примеру, когда используем правый джойстик, то можем вращаться вокруг игрока, но я хочу, что чтобы когда отпускаем джойстик, то камера становится за спину (с тем же оффсетом, что используется при вращении)
вот с вращением и мне в else {} надо написать присвоение позиции и ротации игрока
источник

DZ

D. Zosym in unity3d.ru
if (RightJoystick.isJoystickActive)
       {
           Camera.main.transform.position = transform.position + Quaternion.AngleAxis(CameraAngle, Vector3.up) * CameraOffset;
           Camera.main.transform.rotation = Quaternion.LookRotation(transform.position + Vector3.up * 2f - Camera.main.transform.position, Vector3.up);
       }
       else
       {
           
       }
источник

А

Андрей in unity3d.ru
Кирилл Грушевич
Так же для рендеринга, настройках камеры можно отключать отрисовки определённых слоев
Спасибо, я почитаю тогда все, что с ними можно делать
источник
2020 May 06

Я

Я in unity3d.ru
Друзья, а кто может подсказать по event/action?

Вопрос следующий. У меня есть 3 собственных класса:
Vertex
Polygon
Object

Полигон состоит из 3х экземпляров вершины. Объект состоит из нескольких полигонов.

Я делаю action OnChanged для вершин и полигонов, соответственно. Полигон подписан на событие изменения его вершин, а объект на событие изменения его полигонов.

Далее я могу работать с объектом и в какой-то момент решу разделить один полигон на 3 более мелких. Следовательно я из списка полигонов объекта удалю один полигон и добавлю три новых.

Вопрос:

В обычной ситуации сборщик мусора убьет все экземпляры не используемых классов. А что будет в данном случае? Ведь полигон (который мы решили разбить и удалить из списка объекта) с одной стороны никто не использует, с другой он подписан на событие по изменению вершин, которые продолжают использоваться другими полигонами. Будет ли этот полигон вечно в памяти крутиться или удалится?

Как такой кейс обрабатывать?
источник

M

Mcc in unity3d.ru
затестить только, отписку разве ненадо делать и не париться?
источник

А

Александр in unity3d.ru
Ситуация:
Если зажимаю одну клавишу, а после не отпускаю её и нажимаю вторую, мне нужно чтобы поменялось направление у объекта.
Проблема:
Если первой клавишей была зажата S, то все остальные методы обработки нормально будут вызываться
Если первой была зажата A, то всё, что выше A будет обрабатываться а S - нет.
Если изменить ситуацию, чтобы было if -> if else -> if else, то все изменится наоборот. Если будет зажата первой W, то всё что ниже обработается ну а выше, соответсвенно - нет.
Я чего-то не знаю про операторы if/else или в чём проблема?
Надеюсь нормально объяснил, мучаюсь уже два дня..
Помогите пожалуйста решить вопрос.
источник

Я

Я in unity3d.ru
Mcc
затестить только, отписку разве ненадо делать и не париться?
Ну просто отписку кем и когда делать? В момент, когда я удаляю его из коллекции объекта? Сам экземпляр полигона не знает, что его перестали использовать
источник

SP

Shura Proger in unity3d.ru
Александр
Ситуация:
Если зажимаю одну клавишу, а после не отпускаю её и нажимаю вторую, мне нужно чтобы поменялось направление у объекта.
Проблема:
Если первой клавишей была зажата S, то все остальные методы обработки нормально будут вызываться
Если первой была зажата A, то всё, что выше A будет обрабатываться а S - нет.
Если изменить ситуацию, чтобы было if -> if else -> if else, то все изменится наоборот. Если будет зажата первой W, то всё что ниже обработается ну а выше, соответсвенно - нет.
Я чего-то не знаю про операторы if/else или в чём проблема?
Надеюсь нормально объяснил, мучаюсь уже два дня..
Помогите пожалуйста решить вопрос.
А чего в s нет return?
источник

А

Александр in unity3d.ru
Shura Proger
А чего в s нет return?
он в конце функции, логично что если этот момент выполнится, то и функция закончит своё выполнение.
источник

А

Александр in unity3d.ru
Я
Ну просто отписку кем и когда делать? В момент, когда я удаляю его из коллекции объекта? Сам экземпляр полигона не знает, что его перестали использовать
я не особо силён в сборке мусора, но мне кажется что если ты удаляешь же его вручную, может есть смысл реализовать DIspose и в нём отписаться от события?
источник

M

Mcc in unity3d.ru
Александр
Ситуация:
Если зажимаю одну клавишу, а после не отпускаю её и нажимаю вторую, мне нужно чтобы поменялось направление у объекта.
Проблема:
Если первой клавишей была зажата S, то все остальные методы обработки нормально будут вызываться
Если первой была зажата A, то всё, что выше A будет обрабатываться а S - нет.
Если изменить ситуацию, чтобы было if -> if else -> if else, то все изменится наоборот. Если будет зажата первой W, то всё что ниже обработается ну а выше, соответсвенно - нет.
Я чего-то не знаю про операторы if/else или в чём проблема?
Надеюсь нормально объяснил, мучаюсь уже два дня..
Помогите пожалуйста решить вопрос.
return ы убери
источник

А

Александр in unity3d.ru
Mcc
return ы убери
ну теперь стало как если было бы if else, всё, что ниже W обрабатывается, а выше - нет.
источник

А

Александр in unity3d.ru
тут важным является то, что в момент нажатия другой клавиши, одна из них уже нажата.
источник