Форум » 3. Разработка игр » Unity 3D. Курс обучения » Ответить

Unity 3D. Курс обучения

D_ED_2: Здесь обсуждаем цикл статей «Игровой движок Unity 3D. Курс обучения»: http://gamesisart.ru/game_dev_unity.html Если вы заметили ошибки в тексте или у вас что-то не получается (не до конца понятна логика действий), можете задавать вопросы. Так же здесь принимаются пожелания по выбору темы для следующих статей в разделе разработки игр.

Ответов - 37, стр: 1 2 All

zaraki42: Скопировала ваш код в скрипте «EnemyScript» и «GameController», но все равно запускается только первая волна. Выдает ошибку NullReferenceException: Object reference not set to an instance of an object Enemy.OnCollisionEnter2D (UnityEngine.Collision2D theCollision).

D_ED_2: Мало скопировать код, нужно ещё создать связи между объектами. Нужно просмотреть свойства всех объектов, где остались пустые поля. Скорее всего, нужно к объекту GameController подключить одноименный скрипт GameController или объект enemy.

TTrue: Ничего не вышло. 1 gimp при сохранении сохраняет в своем формате и юнити его не видит надо экспортировать 2 даже после этого кнопка apple не активна 3 текстуру для материала и выбирал и таскал но она не выбирается 4 в зоне иерархии не было объекта background и вообще интерфейс у меня отличается от вашего


кирилл8989: у меня такая проблема - как бы ни старался , корабли противника влетают в меня. Коллайдеры везде есть , так же , как и написано в уроке. И еще одна - не уничтожаются противники. коды проверял, все должно было бы работать. using System.Collections; using System.Collections.Generic; using UnityEngine; public class EnemyScript : MonoBehaviour { public int health = 2; void OnCollisionEnter2D(Collision2D theCollision) { if(theCollision.gameObject.name.Contains("laser")) { LaserScript laser = theCollision.gameObject. GetComponent("LaserScript") as LaserScript; health -= laser.damage; Destroy (theCollision.gameObject); } if (health <= 0) { Destroy (this.gameObject); } } } using System.Collections; using System.Collections.Generic; using UnityEngine; public class LaserScript : MonoBehaviour { public float lifetime = 2.0f; public float speed = 5.0f; public int damage = 1; void Start () { Destroy (gameObject, lifetime); } void Update () { transform.Translate(Vector3.up * Time.deltaTime * speed); } }

кирилл8989: понял,что дело не в кодах. Попробовал взять вашу сцену, но и там все тоже самое

Юрий: Отличная статья! Все работает без проблем. Исправил только в одном месте "тире" на "минус", в скрипте MoveTowardsPlayer, в строке: Vector3 delta = player.position - transform.position; Имею опыт по работе с DirectX(9.0) и с++. Так по трудоемкости, конечно, не сравнить.

emks60: Добрый день осваиваю юнити собрал вашу игру все запустилось огромная благодарность! Но есть некоторые вопросы: 1.Я пишу на макбуке версия юнити от 2019 г. При вводе в сцену компонента GUI Text для счетчика юнити ругается-старый тип компонента не поддерживается в релизе, в game текст не выводится.Пришлось создать компонент MeshText вместо GUIText и соответственно в коде исправить переменную,тогда появился текст счетчиков правда корявый и плохо редактируется.Дальше все как у вас описано, счетчики работают. 2.Собрал игру для Мас, сохранил.При запуске на компе игра идет во весь экран и не могу ее остановить и выйти, клавиша esc не срабатывает.Как посоветуете остановить игру?



полная версия страницы