Ответы пользователя по тегу 2D
  • Можно ли комбинировать 3Д и 2Д графику в Godot?

    @DrRen7
    ну если ты хочешь взаимодействовать с 3д объектами (коллайдерами) то и персонаж должен иметь логику для работы с 3д объектами, условно тебе добавится еще одна ось для движения как пример Octopath traveler.
    Самое простое что можно сделать это запеч 3д карту в 2д как было resident evil. Есть ещё вариант наложить поверх 3д объекта 2д логику, тут работать очень много и вероятно игрок не всегда будет понимать куда можно идти а куда нет.
    Ответ написан
    4 комментария
  • Как построить стены в 2D игре чтоб персонаж не мог через них проходить?

    @DrRen7
    в 2 не силен, а разве у перса не должно быть коллайдера? как бы коллайдеры не дают проходить объекам друг через друга
    Ответ написан
    Комментировать
  • Как написать скрипт Unity 2d для машины?

    @DrRen7
    Времени сейчас расписывать нету. Сделал ассет, но он в 3д, плюс материалы надо переставить
    туть
    Ответ написан
    Комментировать
  • Если переносить объект и держать долгое время и скидывать то он падает очень быстро. C# Что делать?

    @DrRen7
    По сути у тебе объект не двигается а просто телепортируется, если нужно что бы падало плавно домножь вектор падения на Time. deltaTime, ну и тогда логика скрипта поменяется потому как падения надо вызывать каждый кадр
    Плюс я что то не понимаю смысл этой реализации)
    Ответ написан
  • Instantiate создаёт два объекта в unity 2D C# Что делать?

    @DrRen7
    Скорее всего проблема в настойках Rigidbody, вероятно один объект попадает в другой и получается 2 и более столкновений, это если еще и скрипты правильно размещены, но сути у вас вообще не должно ничего создаваться из за удаления объекта до создания.

    Я поправил написал должно работать , то лучше collision.gameObject.name == plusname заменить на collision.gameObject.tag
    using UnityEngine; 
     
    public class Plus : MonoBehaviour
    {
        public string plusname;
        public GameObject ReadyBall;
        GameObject _colObj;
        bool _IsCol;
    
        private void Update()
        {
            if (_IsCol) Pluser();
        }
    
        void Pluser()
        {
            _colObj.SetActive(false);
            GameObject newObj= Instantiate(ReadyBall, (_colObj.transform.position), Quaternion.identity);
            newObj.transform.name = "CreateBy" + this.transform.name; ///For Debug
            Destroy(_colObj);
            Destroy(this.gameObject);
    
        }
        void OnCollisionEnter2D(Collision2D collision)
        {
            if (collision.gameObject.name == plusname&&!_IsCol)
            {
                _colObj = collision.gameObject;
                _IsCol = true;
            }
        }
    }
    Ответ написан
    Комментировать