Ответы пользователя по тегу Разработка игр
  • Где качественно изучить Unreal Engine 4?

    @youkerni
    Unity3D developer
    Где - вопрос не совсем корректный. Он подразумевает что Вы хотите переложить ответственность за Ваше обучение на кого-то. Вам нужно продолжать искать и изучать все ресурсы самостоятельно (одного универсального просто нет), а после этого закреплять все морем практики. Более легкого пути, как по мне, не существует.
    Ответ написан
    Комментировать
  • Unity, 2D: как сделать прыжок?

    @youkerni
    Unity3D developer
    Что нужно что бы все заработало:
    1) Скопировать код.
    2) Объект на котором висит Rigidbody должен иметь этот скрипт и коллайдер (обязательно 2д, не триггер)
    3) Пол (то, с чем соприкасается объект игрока) должен иметь Layer "Ground" и коллайдер2д (не триггер)

    Суть в том, что при вводе вы должны запоминать факт ввода клавиши прыжка и игнорировать его до приземления (для этого использован метод OnCollisionEnter2D)

    Исходя из этого дополните Ваш пример как Вам угодно.

    public class PlayerController : MonoBehaviour
    {
        Rigidbody2D m_Rigidbody;
        readonly Vector2 force = new Vector2(50, 50);
        bool inAir;
    
        private void Start()
        {
            m_Rigidbody = GetComponent<Rigidbody2D>();
        }
    
        void Update()
        {
            if (Input.GetKey(KeyCode.Space) && !inAir)
            {
                inAir = true;
                m_Rigidbody.AddForce(force);
            }
        }
    
        private void OnCollisionEnter2D(Collision2D collision)
        {
            if (collision.gameObject.layer == LayerMask.NameToLayer("Ground"))
                inAir = false;
        }
    }
    Ответ написан
    Комментировать
  • Почему один объект двигается быстрее остальных?

    @youkerni Автор вопроса
    Unity3D developer
    if (groupObjects[i] != obj)
                    (groupObjects[i] as SelectableComponent).transform.position += (Vector3)v;


    Вот эта проверка был некорректной. Я сравнивал ISelectable и IDraggable, из-за чего объект который я двигал изначально двигался дважды на один и тот же вектор.
    Ответ написан
    Комментировать
  • Как сделать поворот ракеты носом в направлении к игроку?

    @youkerni
    Unity3D developer
    void Update ()
    {
        transform.forward = transform.position - player.position;
    }


    В целях оптимизации рекомендовал бы использовать localPosition.
    Ответ написан
    Комментировать
  • IDragHandler Улетает в Нарнию. Почему?

    @youkerni
    Unity3D developer
    Дело в том, что тач происходит в другой системе координат.
    Что бы перевести тач в "мировые" координаты вам необходимо использовать метод Camera.main.ScreenToWorldPoint()
    public void OnDrag(PointerEventData eventData)
    {
       transform.position = Camera.main.ScreenToWorldPoint(eventData.position);
    }
    Ответ написан
    2 комментария