Size: a a a

2021 January 15

P

PoulGray in unity3d.ru
Vitaliy Anapov
Здравствуйте. Можно ли запустить ontriggerenter перед start?
Вызвать вручную в Awake можно попробовать
источник

VA

Vitaliy Anapov in unity3d.ru
PoulGray
Вызвать вручную в Awake можно попробовать
Как его вручную вызвать?
источник

P

PoulGray in unity3d.ru
Vitaliy Anapov
Как его вручную вызвать?
Как обычный метод
OnTriggerEnter();
И передать нужные аргументы
источник

P

PoulGray in unity3d.ru
Vitaliy Anapov
Здравствуйте. Можно ли запустить ontriggerenter перед start?
Или если так нужно
То можно сразу необходимую логику запускать в Awake
источник

VA

Vitaliy Anapov in unity3d.ru
PoulGray
Как обычный метод
OnTriggerEnter();
И передать нужные аргументы
А если нужно созданный объект найти?
источник

АФ

Алексей Феськов... in unity3d.ru
Vitaliy Anapov
Здравствуйте. Можно ли запустить ontriggerenter перед start?
IEnumerator Start()
{
   yield return new WaitForEndOfFrame();
   LateStart();
}

void LateStart()
{
   // do things
}
источник

P

PoulGray in unity3d.ru
Vitaliy Anapov
А если нужно созданный объект найти?
Найдите, предварительно сохранив на него ссылку, и потом уже указывайте его в аргументы
источник

P

PoulGray in unity3d.ru
Но проще нужную логику запустить в Awake сразу уж тогда
источник

VA

Vitaliy Anapov in unity3d.ru
Я сделал так и он всё равно не работае как нужно


public class RoomSpawner : MonoBehaviour
{
   [SerializeField] private RoomData roomData;
   [SerializeField] private Direction direction;
   private enum Direction{top, down, left, right};
   private bool canSpawn = true;

   void Start()
   {
       Destroy(gameObject, 0.4f);
       Invoke("SpawnRandomRoom", 0.3f);
   }

   void SpawnRandomRoom()
   {
       if(canSpawn)
       {
           if(direction == Direction.top)
               Instantiate(roomData.topRooms[Random.Range(0, roomData.topRooms.Length - 1)], transform.position, Quaternion.Euler(0f, 0f, 0f));
           else if(direction == Direction.down)
               Instantiate(roomData.downRooms[Random.Range(0, roomData.downRooms.Length - 1)], transform.position, Quaternion.Euler(0f, 0f, 0f));
           else if(direction == Direction.left)
               Instantiate(roomData.leftRooms[Random.Range(0, roomData.leftRooms.Length - 1)], transform.position, Quaternion.Euler(0f, 0f, 0f));
           else if(direction == Direction.right)
               Instantiate(roomData.rightRooms[Random.Range(0, roomData.rightRooms.Length - 1)], transform.position, Quaternion.Euler(0f, 0f, 0f));
       }
   }
   private void OnTriggerEnter2D(Collider2D collider)
   {
       if(collider.CompareTag("Room"))
           canSpawn = false;
   }
}
источник

VM

Vlad Mc in unity3d.ru
Привет. Подскажите как сделать так, чтобы при подъеме монетки число очков показывалось не текстом, а заготовленными спрайтами?
источник

VA

Vitaliy Anapov in unity3d.ru
Vlad Mc
Привет. Подскажите как сделать так, чтобы при подъеме монетки число очков показывалось не текстом, а заготовленными спрайтами?
Из массива доставать спрайты
источник

PD

Pavel Dizer in unity3d.ru
Доброго дня. Подскажите решение.
Создаю объект на сцене, как сделать что бы после его создания он становился дочерним нужного мне объекта
источник

VA

Vitaliy Anapov in unity3d.ru
Pavel Dizer
Доброго дня. Подскажите решение.
Создаю объект на сцене, как сделать что бы после его создания он становился дочерним нужного мне объекта
Instantiate(Object, parent);
источник

PD

Pavel Dizer in unity3d.ru
Vitaliy Anapov
Instantiate(Object, parent);
Спасибо, сейчас опробую
источник

VA

Vitaliy Anapov in unity3d.ru
Vitaliy Anapov
Я сделал так и он всё равно не работае как нужно


public class RoomSpawner : MonoBehaviour
{
   [SerializeField] private RoomData roomData;
   [SerializeField] private Direction direction;
   private enum Direction{top, down, left, right};
   private bool canSpawn = true;

   void Start()
   {
       Destroy(gameObject, 0.4f);
       Invoke("SpawnRandomRoom", 0.3f);
   }

   void SpawnRandomRoom()
   {
       if(canSpawn)
       {
           if(direction == Direction.top)
               Instantiate(roomData.topRooms[Random.Range(0, roomData.topRooms.Length - 1)], transform.position, Quaternion.Euler(0f, 0f, 0f));
           else if(direction == Direction.down)
               Instantiate(roomData.downRooms[Random.Range(0, roomData.downRooms.Length - 1)], transform.position, Quaternion.Euler(0f, 0f, 0f));
           else if(direction == Direction.left)
               Instantiate(roomData.leftRooms[Random.Range(0, roomData.leftRooms.Length - 1)], transform.position, Quaternion.Euler(0f, 0f, 0f));
           else if(direction == Direction.right)
               Instantiate(roomData.rightRooms[Random.Range(0, roomData.rightRooms.Length - 1)], transform.position, Quaternion.Euler(0f, 0f, 0f));
       }
   }
   private void OnTriggerEnter2D(Collider2D collider)
   {
       if(collider.CompareTag("Room"))
           canSpawn = false;
   }
}
источник

W

Wafphlez in unity3d.ru
Vitaliy Anapov
Из массива доставать спрайты
А через партиклы выйдет?
источник

VA

Vitaliy Anapov in unity3d.ru
Wafphlez
А через партиклы выйдет?
Не понял. Зачем и как делать через портиклы если изображение статичное? Или я что то не так понял?
источник

W

Wafphlez in unity3d.ru
Vitaliy Anapov
Не понял. Зачем и как делать через портиклы если изображение статичное? Или я что то не так понял?
Слышал что партикл систем способны почти на всё
источник

VA

Vitaliy Anapov in unity3d.ru
Wafphlez
Слышал что партикл систем способны почти на всё
Но нужно же просто текст вывести. Зачем партиклы?
источник

W

Wafphlez in unity3d.ru
Vitaliy Anapov
Но нужно же просто текст вывести. Зачем партиклы?
Да просто так
источник