Сказание о Сайте - страница 2 - Глава 2 Что нам стоит сайт построить
Сказание о Сайте
Глава 1 Зарождение
Глава 2 Что нам стоит сайт построить
В какой-то момент я осознал, что мне уже недостаточно сайта, который
написан на чистом html (+ немного css). Хотелось чего-то большего.
На дворе шел 2010 год. Кроме того, на бесплатном хостинге есть свои
неудобства: на твой сайт вклинивают р
Этот шаг позволит вам освоить основные принципы работы в unity3d 2022
и двигаться дальше - изучать другие примеры более сложных проектов,
а также разбираться и понимать как все было создано в них и как
устроено.
То есть разбираем ключевые принципы работы.
Я нигде не нашел навскидку коротких и доходчивых уроков, которые
бы объясняли новичку как работать в unity3d 2022, поэтому
решил написать свой урок.
Кроме того, он полезен будет и лично для меня, так как пока я в unity3d
еще не очень много работал и возвращаюсь к работе с ним эпизодически,
поэтому данные записи позволят освежить в памяти то, что может
забыться.
Итак, давайте приступим!
То где и как скачать и как установить все необходимое для работы
с unity3d 2022, а именно с версией 2022.3.11f1
я описывать не буду.
Все достаточно просто - скачиваем с официального сайта. Если что-то непонятно - гуглим
официальную инструкцию и следуем ей.
Также обязательно нужна установка Visual Studio как редактора кода c# скриптов
ваших unity3d проектов. Поскольку в нём есть автоподстановка кода,
подсветка синтаксиса, ошибок. Вообщем намного удобнее, чем в каком-то стороннем
текстовом редакторе наподобие notepad++.
Хотя даже если VS у вас не будет под рукой, сгодится и notepad++. Просто работать
с кодом в этом случае будет немножко сложнее. Придется самостоятельно искать
в мануалах нужные названия методов и инструкций.
Однако искать их на первых порах вам конечно придется в любом случае!
Полагаю, что вы уже установили и настроили все для работы. Итак, создаем новый
пустой проект используя Unity Hub.
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Выбираем тип
2D Core
Project name
даем проекту какое-либо понятное название,
я назову проект
the_first_game
Location
указываем папку, куда хотим сохранить проект
и жмём кнопку Create
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Ждём некоторое время, пока проект будет создан и редактор unity3d 2022 запустится.
Время может составлять 2 минуты и более. Зависит от мощности вашей системы.
Не удивляйтесь, что приходится ждать, добро пожаловать в unity3d!
После того, как проект готов, советую зайти в папку и посмотреть какие
там появились файлы и папки и каков размер папки пустого проекта.
У меня он имеет размер: 1,11 Gb
Т. е. даже новый пустой проект в котором ничего еще нет, уже требует
столько места.
А на экране вы увидите следующее -
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Мы проделаем все необходимые действия для создания самой простой игры.
Готовый пример можно скачать из ранее написанной статьи -
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Как я изучал unity3d или мои впечатления
В примере есть все необходимое, а сейчас мы рассмотрим те самые магические действия,
которые нужно выполнить, чтобы получилась простейшая заготовка вашего будущего
масштабного проекта.
В первую очередь давайте проверим как работает новая, пока что пустая игра.
Для этого на панели инструментов вверху нажмите кнопку Play
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Собственно ничего не произойдёт. Поскольку в проекте еще ничего нет и отображать просто нечего.
Но вы увидите, что редактор unity3d работает в режиме запуска игры (в режиме отладки).
Кнопка Play будет находиться в нажатом состоянии. Чтобы вносить изменения в проект, нужно
снова отжать её и тогда выполнение будет остановлено.
Возьмём статичный спрайт персонажа из проекта
Как я изучал unity3d или мои впечатления
и разместим в той папке в которой Вы создали свой проект, а внутри неё
вот в такой подпапке:
Assets\mng_dress_hordes\game\girls\mindy\
Как только вы закинете спрайт в эту папку, редактор unity3d сразу
же создаст там служебный файл
mindy_1_256.png.meta
в котором редактор сохраняет какую-то служебную информацию для своей работы.
Давайте в редакторе unity3d откроем эту папку
[путь_к_папке_вашего_проекта]\Assets\mng_dress_hordes\game\girls\mindy\
и перетащим спрайт персонажа на сцену.
Вот что получится в итоге (данный скриншот анимированный gif) -
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Обращаю ваше внимание, что на скриншоте ошибочно показано создание спрайта в сцене, когда редактор
работает в режиме Play (кнопка Play нажата!!!),
прежде чем что-то менять в вашем проекте нужно обязательно
эту кнопку Отжать!!!
Обычно запуск из редактора используется для режима отладки - чтобы отслеживать изменение объектов,
переменных и прочего.
Выключим режим Play.
Создадим спрайт как было показано.
И переименуем объект mindy_1_256 в player.
Для этого надо кликнуть на нём правой кнопкой мыши и выбрать пункт Rename.
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Вводим название, нажимаем Enter. Сохраняем изменения в проект - Ctrl + [S]
И снова пробуем запустить игру кнопкой Play.
Технически пока изменений не видно, лишь кнопка Play меняет состояние из нажатого и наоборот.
Но вы заметите, что при выборе вкладки
#Scene
и при запуске игры кнопкой Play,
вид будет отличаться.
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Вкладка #Scene содержит вид сцены для редактора, а Game -
вид какой будет иметь игра при обычной работе или если мы соберем
исполнимый файл exe.
Кстати, попробуем это сделать.
Выберем пункт меню
File > Build settings
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Выберем тип сборки - Windows, Mac, Linux
хотя по факту вы получите сборку exe файла только
под Windows.
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Как видно из скриншота можно выполнить сборку - выбрав Build
или Clean Build - чтобы предварительно очистить все служебные
файлы предыдущих сборок.
После нажатия Build вам будет предложено выбрать папку,
в которой редактор unity3d создаст дистрибутив вашей игры.
Рекомендую эту папку создать внутри папки вашего проекта и назвать
так - build\win
тогда внутри win будет как раз все необходимое для дистрибутива
вашей игры - то есть exe файл и другие служебные файлы и папки
игры.
Их потом можно поместить в zip архив и выкладывать где-то, чтобы
люди могли скачивать и играть.
Итак, пробуем!
Сборка занимает некоторое время (у меня заняла около 1 минуты)
и после этого редактор unity3d откроет вам папку с exe файлом
игры.
Кликаем его и смотрим, что получилось.
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Игра запустится в полноэкранном режиме и вы увидите то же, что
уже видели запуская игру из редактора кнопкой Play, только во весь
экран.
Кстати дистрибутив игры получился размером всего 70,6 Mb, что по сравнению
с размером папки всего проекта, о чем я писал выше, совсем немного.
По-умолчанию, при установке unity3d, а также файлов visual studio, вы
будете выбирать скорее всего универсальный тип сборщика WebGL, именно
поэтому он может запускаться на win/linux/mac, но как видим,
поскольку создается только exe, то для других платформ нужно установить
дополнительные сборщики под Linux и Mac. Здесь я их рассматривать не буду.
Идём дальше.
Пока что наша заготовка игры не делает совсем ничего полезного, кроме показа
персонажа в центре экрана. И даже закрыть окно игры можно только переключившись
на рабочий стол Windows или клавишами Alt + F4.
Давайте создадим наш первый рабочий скрипт на c# и узнаем, как собственно
говоря происходит работа в unity3d.
Для этого внутри папки
Assets
создадим папку
Scripts
Есть уже готовая структура всех необходимых файлов и вы можете скачать
это из статьи -
Как я изучал unity3d или мои впечатления
Но в статье не описаны необходимые действия - как создать скрипт и привязать его
к игровому объекту. Они написаны только в приложенном readme.txt и очень кратко.
Здесь мы рассмотрим эти вещи более подробно.
Чтобы создать скрипт нужно внутри папки
[путь_к_папке_вашего_проекта]\Assets\Scripts
создать подпапку
Movement
а внутри неё файл
CharacterController_2d.cs
имя файла может быть любым. Главное чтобы расширение было .cs
но для имени файла нужно четко соблюдать правила именования, потому что
названия c# скриптов должны совпадать с названиями классов, объявленных внутри них.
Если названия будут отличаться, то вы получите ошибки.
Содержимое файла должно быть таким:
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using TMPro;
using UnityEngine;
public class CharacterController_2d : MonoBehaviour
{
public float runSpeed = 40.0f;
float horizontalMove = 0.0f;
float verticalMove = 0.0f;
private Rigidbody2D m_Rigidbody2D;
private Vector3 velocity = Vector3.zero;
// How much to smooth out the movement
[Range(0, 0.3f)] [SerializeField] private float m_MovementSmoothing = 0.05f;
public TMP_Text fpsText;
public float deltaTime;
public bool showFPSOn = true;
void showFPS() {
fpsText.gameObject.SetActive(showFPSOn);
if (!showFPSOn)
return;
deltaTime += (Time.deltaTime - deltaTime) * 0.1f;
float fps = 1.0f / deltaTime;
fpsText.text = "FPS: "+Mathf.Ceil(fps).ToString();
}
// Start is called before the first frame update
void Start()
{
showFPSOn = true;
fpsText = GameObject.Find("FPS").GetComponent<TMP_Text>();
Debug.Log("game started");
}
private void Awake()
{
m_Rigidbody2D = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
horizontalMove = Input.GetAxisRaw("Horizontal") * runSpeed;
verticalMove = Input.GetAxisRaw("Vertical") * runSpeed;
if (Input.GetKeyUp(KeyCode.F))
{
showFPSOn = !showFPSOn;
}
if (Input.GetKey("escape"))
{
Application.Quit();
}
showFPS();
}
void FixedUpdate()
{
// Move our character
Vector3 targetVelocity = new Vector2(horizontalMove * Time.fixedDeltaTime * 10.0f,
verticalMove
* Time.fixedDeltaTime * 5.0f);
m_Rigidbody2D.velocity = Vector3.SmoothDamp(m_Rigidbody2D.velocity, targetVelocity,
ref velocity,
m_MovementSmoothing);
}
}
Что оно означает я поясню далее.
Однако удобнее создать скрипт сразу из редактора unity3d, для этого выберите папку
[путь_к_папке_вашего_проекта]\Assets\Scripts\Movement
в окне редактора
и кликните по ней правой кнопкой мыши
затем выберите пункт Create > C# Script
как показано на скриншоте ниже -
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Называем скрипт:
CharacterController_2d
двойным кликом открываем из Visual Studio (у меня 2019)
и получим такой код, созданный по-умолчанию.
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
класс
class NewBehaviourScript
сразу назовите правильно -
чтобы он соответствовал названию файла -
CharacterController_2d
и сохраните изменения в файле из Visual Studio - Ctrl + S.
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
При переключении на окно редактора unity3d вы заметите, что он обновил проект
и перекомпилировал измененный файл скрипта.
Так будет происходить каждый раз, когда вы что-то будете менять в скриптах
своего проекта.
Скрипт готов, но если вы запустите игру, то никаких изменений не
заметите.
Почему ?
Потому что скрипт, прежде чем он начнёт работать, надо привязать
к какому-то игровому объекту. У нас в игре уже есть объект
player.
Давайте привяжем скрипт к нему.
Для этого просто выберите объект player
в игровой сцене, а файл скрипта перетащите в окно Inspector, в
котором отображаются свойства открытого объекта player.
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Опять же, если запустить игру по кнопке Play
ничего не произойдёт и никаких изменений вы не обнаружите.
Почему ?
Можно еще запускать сразу exe файл давая команду File > Build and Run или нажав Ctlr + [B].
Давайте вернемся к коду нашего скрипта
CharacterController_2d.cs
и разберемся, что он делает.
Строки, которые представляют коментарии и игнорируются компилятором c# при сборке,
я отметил зеленым цветом. Точно таким же цветом они помечаются в Visual Studio
при работе c c# скриптами.
using System.Collections; //данная строка служит для подключения функционала коллекций
using System.Collections.Generic; //а также вложенного подкласса - Generic
using UnityEngine.UI; //подключение элементов интерфейса UI
using TMPro; //подключение работы с объектом TMP_Text
using UnityEngine; //так подключается базовый функционал движка - эту строку вы увидите в любых
// unity3d c# скриптах.
public class CharacterController_2d : MonoBehaviour
{
public float runSpeed = 40.0f; //скорость перемещений персонажа
float horizontalMove = 0.0f; //поля класса для рассчета горизонтального и
float verticalMove = 0.0f; //вертикального перемещения
private Rigidbody2D m_Rigidbody2D; //этот объект мы добавим к player, чтобы реализовать
// перемещения
private Vector3 velocity = Vector3.zero; //специальный нулевой вектор, нужен в рассчётах
// степерь сглаживания перемещений
[Range(0, 0.3f)] [SerializeField] private float m_MovementSmoothing = 0.05f;
public TMP_Text fpsText;
public float deltaTime;
public bool showFPSOn = true;
void showFPS() {
fpsText.gameObject.SetActive(showFPSOn);
if (!showFPSOn)
return;
deltaTime += (Time.deltaTime - deltaTime) * 0.1f;
float fps = 1.0f / deltaTime;
fpsText.text = "FPS: "+Mathf.Ceil(fps).ToString();
}
// Start is called before the first frame update
void Start()
{
showFPSOn = true;
fpsText = GameObject.Find("FPS").GetComponent<TMP_Text>();
Debug.Log("game started");
}
private void Awake()
{
m_Rigidbody2D = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
horizontalMove = Input.GetAxisRaw("Horizontal") * runSpeed;
verticalMove = Input.GetAxisRaw("Vertical") * runSpeed;
if (Input.GetKeyUp(KeyCode.F))
{
showFPSOn = !showFPSOn;
}
if (Input.GetKey("escape"))
{
Application.Quit();
}
showFPS();
}
void FixedUpdate()
{
// Move our character
Vector3 targetVelocity = new Vector2(horizontalMove * Time.fixedDeltaTime * 10.0f,
verticalMove
* Time.fixedDeltaTime * 5.0f);
m_Rigidbody2D.velocity = Vector3.SmoothDamp(m_Rigidbody2D.velocity, targetVelocity,
ref velocity,
m_MovementSmoothing);
}
}
Остальное я поясню чуть позже.
Давайте сделаем, чтобы наш персонаж player мог перемещаться по клавишам wasd или стрелкам.
Все это уже описано в коде, но нужно добавить к объекту player
component
Убедитесь, что выбран объект именно player. Для этого кликните по нему.
Добавим
Rigidbody 2D
Для этого нажмите кнопку Add component и добавьте его, как показано на скриншоте ниже -
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Компонент находится в группе Physics 2D
либо в поле вверху можно ввести первые буквы его названия и вы его
сразу увидите -
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Сохраняем изменения в проекте - Ctrl + [S].
Запускаем игру - из редактора кнопкой Play
или из exe файла - Ctrl + [B].
Мы увидим, что персонаж падает вниз и исчезает за пределами видимости.
Почему так происходит ?
А вот почему:
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
задайте
Gravity Scale равным 0 (и нажмите Enter).
сохраните изменения и запустите игру снова.
Персонаж перестал падать, кроме того, вы заметите, что он реагирует
на клавиши WASD и стрелки - может перемещаться.
Свойство Gravity Scale
задает у персонажа гравитацию и если мы указываем 0 гравитацию,
персонаж перестает падать. Данное свойство полезно в платформерах, когда
персонаж прыгает по платформам и должен падать с них вниз, или падать
вниз после очередного прыжка.
Еще вы заметите, что в проекте есть ошибки:
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Ошибка связана с тем, что в сцене у нас сейчас нет объекта FPS - для
показа текста FPS, а в скрипте CharacterController_2d.cs
есть обращения к нему -
fpsText.gameObject.SetActive(showFPSOn);
fpsText.text = "FPS: " + Mathf.Ceil(fps).ToString();
Добавим этот объект в сцену.
Нужно кликнуть правой кнопкой SampleScene и выбрать пункты
показанные на скриншоте -
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
При первом импорте этого объекта в проект появится такое окно.
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Нужно нажать Import TMP Essentials и немного подождать.
Если нужны также Examples & Extras, то нажать и вторую кнопку.
А если нет - можно закрыть это окошко.
Сохраняем изменения в проект - Ctrl + [S].
И объект
Text (TMP)
нужно переименовать правой кнопкой и выбором пункта Rename, назвав
FPS
и нажать Enter.
Сохранить изменения в проекте и после этого снова попробовать запустить игру.
При запуске кнопкой Play ошибка NullReference должна исчезнуть,
а fps будет отображаться таким -
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
При запуске игры из собранного exe файла - Ctrl + [B] или путем запуска
exe файла только что собранного в редакторе из папки дистрибутива
вы увидите такое -
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Также игра запущенная из exe файла реагирует на клавиши WASD или стрелки,
перемещая персонажа.
А если нажать [Esc], то сработает выход из игры.
FPS как видите стал другим. Значение меньшее и соответствует частоте 144 Гц,
частоте обновления экрана моего монитора.
А при запуске из редактора значения какие-то странные. Но вероятно нужно
погуглить иные способы получения FPS.
Далее -
Все эти действия:
перемещения персонажа WASD или стрелками
обработчик нажатия [Esc]
а также показ/скрытие FPS по клавише [F]
описаны в коде и вы можете найти их там самостоятельно
или читайте далее мои пояснения.
Также хочу заметить, что для объекта FPS надо скорректировать координаты
размещения на экране, чтобы FPS отображалось, скажем, в левом верхнем
углу экрана игры, а не так как сейчас (см. скриншот выше).
После того, как вы узнаете каким образом это все реализовано - вы
познаете первый шаг в создании своей игры на unity3d !!!
Шаг может оказаться для вас сложным или не очень, но самое главное, что
если у вас все получилось и вы усвоили эти базовые принципы работы
в unity3d, то можно смело двигаться дальше - и изучать unity3d глубже
на готовых учебных примерах, а также читая мануалы и другие уроки.
Как разместить FPS в нужном месте экрана ?
При добавлении TextMesh Pro вы заметите, что он оказался внутри Canvas.
Который был создан автоматически.
Это специальный объект (холст) для отображения элементов UI (User Interface) -
Пользовательского интерфейса. Различных меню, кнопок, надписей и т. п.
поверх экрана игры.
Каждый объект в unity3d имеет свойства, которые мы можем менять в редакторе
через Inspector или из c# скриптов - путём написания кода.
Для того, чтобы поставить FPS в левый верхний угол окна игры надо выбрать
объект FPS и через Inspector задать для него такие свойства -
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Вы можете самостоятельно поэкспериментировать и с другими свойствами - размером
шрифта, его цветом и т. п.
К слову, параметры размещения сейчас не учитывают разрешение в котором
будет отображаться игра.
Как реализованы перемещения клавишами WASD и стрелками ?
строками кода -
//в методе Update, который вызывается каждый кадр отрисовки игры,
//но интервалы времени могут немного варьировать и должны учитываться
//по deltaTime
//считываем нажатие клавиш отвечающих за горизонтальные и вертикальные
//перемещения
//runSpeed определяет скорость перемещений - попробуйте её менять.
void Update()
{
horizontalMove = Input.GetAxisRaw("Horizontal") * runSpeed;
verticalMove = Input.GetAxisRaw("Vertical") * runSpeed;
}
//данный метод вызывается в строго заданные интервалы времени без
//задержек
//здесь мы выполняем те самые перемещения персонажа по горизонтали
//и вертикали
//targetVelocity - 2d вектор перемещений, учитывающий размеры горизонтального
//и вертикального смещений, а также параметр отсчета текущего времени
//10.0f и 5.0f множители задают ускоряющий коэффициент. По вертикали он
//в 2 раза меньше. Со значениями также можете поэкспериментировать.
//все остальное - это чистая математика и вызовы методов и функций:
//new Vector2 - создаем объект вектора 2d (x, y) и помещаем в переменную
//m_Rigidbody2D.velocity - осуществляем перемещения с заданной скоростью
//и запоминаем текущую полученную скорость
void FixedUpdate()
{
// Move our character
Vector3 targetVelocity = new Vector2(horizontalMove * Time.fixedDeltaTime * 10.0f,
verticalMove * Time.fixedDeltaTime * 5.0f);
m_Rigidbody2D.velocity = Vector3.SmoothDamp(m_Rigidbody2D.velocity, targetVelocity,
ref velocity, m_MovementSmoothing);
}
Сами кнопки задаются через
Edit > Project settings > Input manager
если кликать картинку она будет последовательно меняться в размерах от 640 до 1920 пиксель.
Как реализован выход по [Esc] ?
void Update()
{
if (Input.GetKey("escape"))
{
Application.Quit();
}
}
Тут, думаю, проще некуда. Проверяем нажат ли Escape и если да -
вызываем метод для выхода из игры -
Application.Quit();
Как работает отображение FPS, и его показ/скрытие ?
public TMP_Text fpsText; //в данной переменной будет объект текста
//для вывода FPS
public float deltaTime; //это поле класса нужно для хранения
//текущего отсчета интервала времени прошедшего с предыдущего
//кадра отрисовки
public bool showFPSOn = true; //это флаг для true - показ FPS
//и false - скрытие
void showFPS()
{
fpsText.gameObject.SetActive(showFPSOn); //если true - делаем
//fpsText видимым, false - скрытым
if (!showFPSOn) //если false - досрочно выходим из метода
return;
//тут вычисляем FPS и выводим в fpsText
deltaTime += (Time.deltaTime - deltaTime) * 0.1f;
float fps = 1.0f / deltaTime;
fpsText.text = "FPS: " + Mathf.Ceil(fps).ToString();
}
// Start is called before the first frame update
void Start()
{
showFPSOn = true; //при старте игры отображаем fps
fpsText = GameObject.Find("FPS").GetComponent(); //получаем
//ссылку на объект FPS из сцены и передаем в поле fpsText
//для дальнейших обращений
Debug.Log("game started"); //выводим отладочное сообщение
//в консоль редактора unity3d для целей отладки
}
void Update()
{
if (Input.GetKeyUp(KeyCode.F)) //управляем показом FPS по клавише F
{
showFPSOn = !showFPSOn;
}
showFPS(); //отображаем FPS
}
void FixedUpdate()
{
//showFPS();
}
Кстати, если вызывать showFPS из метода FixedUpdate
то будут совсем другие значения.
На моей системе в первом случае FPS был от 144 до 145,
а во втором - при вызовах из FixedUpdate - 51.
И, по итогу нашего сегодняшнего урока, обращаю внимание еще на один факт -
private void Awake()
{
m_Rigidbody2D = GetComponent(); //устанавливаем ссылку на объект
//Rigidbody2D, иначе обращения к нему в других методах будут давать ошибку
//NullReference exception, которую вы уже наблюдали когда в сцене
//не было объекта FPS для вывода в него текста о fps.
}
Рад, что вы дочитали до конца и надеюсь, Вам был полезен данный урок!
В некоторой степени, как я уже писал в самом начале, я писал этот урок и лично
для себя (как впрочем и всегда). Потому что с большой долей вероятности, иногда
приходится что-то освежать в памяти.
Ну а в большей степени конечно же, данный урок рассчитан на всех тех, кто
хочет изучить работу в unity3d, но так и не решается сделать свой первый
шаг.
Или же считает, что этот шаг для него слишком сложный.
Конечно, я освоил немало сред разработки и движков, но опыт приходит только
с опытом. Чем больше мы знаем, тем легче нам изучать что-то новое.
Особо сложного ничего в работе с unity3d на самом деле нет.
Главное это желание, наличие времени и запастись немного терпением. Так как
уверен, что не все и не всегда получается сразу и с первой попытки.
Но как говорится, опыт приходит с опытом!!!
Удачи вам, в освоении unity3d 2022.3 !!!!!!!!!
За бортом у нас остались темы: как задать размеры окна игры,
сменить иконку exe файла, добавить свой логотип в экран начальной
загрузки. Но эти вопросы я как-нибудь опишу в следующей статьей.
Следите за обновлениями на сайте!
Спасибо за внимание, с вами был,
megainformatic !
оцените статью:
0
0
игры, сервисы
играть
играть
случайный сайт
играть
видео-рассказ, уроки godot, виртуальный помощник по поиску информации
играть
читать
купить
скачать
игры Многоликий: dress - hordes эпизоды с 1 по 4
играть
скачать
купить
купить
игры, музыкальные клипы
скачать
скачать
смотреть
скачать/играть
музыкальный клип, игры
смотреть
играть
скачать
скачать
разработка игр, анимационный фильм, новогодняя дискотека 2020 - песни на итальянском, игра про лифт
смотреть
смотреть
смотреть
смотреть
игры, инструменты разработки, анимационный фильм, фильм.
купить
смотреть
смотреть
скачать
игры
скачать
скачать
скачать
купить
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере (3), создание музыки в браузере (1)
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
бк 0010.01 - играть!
играть
игры в браузере
играть
играть
играть
играть
игры в браузере (3), скачиваемые (1)
играть
играть
играть
скачать
игры в браузере
играть
играть
играть
играть
игры в браузере, скачиваемые игры
играть
скачать
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
Foxyland 2
quidget 2
играть
играть
полезный софт, игры в браузере
скачать
anova игра
A Knots Story
sabotage
сервисы, игры
24500 руб.
скачать
игра
играть
игры, программы
купить / скачать
купить
5500 руб.
скачать
поздравления, уроки рисования, уроки создания сайтов
читать
читать
читать
150 руб.
комиксы, музыка, рассказы
читать
читать
слушать
читать
игра для разработки, калькулятор услуг, cms, комикс
250 руб.
разработка на заказ
1250 руб.
350 руб.
игры для разработки, комиксы
скачать
читать
читать
скачать
игры шарики и ямки, комиксы про Костю Коробкина, ria xxl игра, fly snow 3d генератор эффектов снега, частиц и др. -
скачать
читать
150 руб.
350 руб.
Создай свою игру на fle game engine -
800 руб.
240 руб./скачать
скачать
скачать
Для создания сайта - модуль отзывов/комментариев для вашего сайта в составе megainformatic cms express files -
700 руб.
1250 руб.
150 руб.
500 руб.
Уроки Flash, бесплатные Flash - игры.
бесплатно
бесплатно
2500 руб.
14000 руб.
Поддержка сайтом нескольких языков (multi lang), создание собственной системы личных кабинетов, соц. сети или фриланс - биржи (megainformatic cms social), создание сервиса коллективных покупок на базе megainformatic cms groupon, онлайн сервис подсчёта статистики ключевых слов в статьях вашего сайта keywords gen + описание кода данного сервиса, с возможностью бесплатно реализовать его аналог на своём собственном сайте.
500 руб.
12000 руб.
14000 руб.
бесплатно
megainformatic.ru/webjob/ - сервис для фриланс проектов
- место встречи заказчиков и исполнителей
megainformatic.ru/webjob/ - сервис для фриланс проектов
- место встречи заказчиков и исполнителей
Системы управления сайтом, уроки
1250 руб.
бесплатно
550 руб.
500 руб.
megainformatic cms admin - простая и компактная система
для работы и управления сайтом
350 руб.
5800 руб.
3000 руб.
500 руб.
megainformatic cms free и серия продуктов - Уроки Photoshop
бесплатно
650 руб.
700 руб.
750 руб.
Данная серия посвящена описанию приемов и методов создания изображений,
с помощью инструментария программы Adobe Photoshop. Кроме того, многие
описанные средства могут вам помочь при освоении и многих других программ
для работы с растровой графикой - GIMP, Corel Photo Paint и других.
бесплатные игры 2d и 3d, а также эмулятор Ну, Погоди!
300 руб.
бесплатно
бесплатно
бесплатно
Это серия распространяемых бесплатно игр. Вы не только можете поиграть,
но и скачать исходники, получив тем самым возможность внести изменения
в игру или создать новую !!! (эмулятор Ну, Погоди! распространяется платно).
серия игр про Веселого Буквоежку, и бесплатно распространяемая игра
Нечто: Необъяснимое - в плену желаний
350 руб.
510 руб.
fle game engine
бесплатно
Здесь представлены новинки жанра - Говорящий Комикс, Настольная игра,
А также продукт, который позволит Вам научиться создавать игры самостоятельно.
Ну и конечно изюминка в своём роде - бесплатная игра - Нечто: Необъяснимое
- в плену желаний
Серия бесплатных онлайн уроков, посвященных 3ds max, photoshop, c++,
directx, delphi и php.
бесплатно
бесплатно
бесплатно
бесплатно
бесплатно
бесплатно
500 руб.
300 руб.
Описаны практические примеры решения различных задач, возникающих при
создании игр и сайтов.
Продукты Набор разработчика и Ваше Визуальное Шоу распространяются платно.
уроки и продукты различной тематики
бесплатно
бесплатно
бесплатно
400 руб.
Бесплатные Уроки Photoshop free, Бесплатные Уроки по программированию
на delphi directx - Как создать игру Ну, Погоди!, Бесплатная Авторская
музыка в формате mp3 - Музыкальные Миры, Платно распространяемый продукт
megainformatic cms express - система для быстрого создания Вашего сайта
на php + my sql.
Проекты игр, уроки
450 руб.
бесплатно
бесплатно
бесплатно
Игра Веселый Буквоежка, уроки delphi directx 8.1 для начинающих (описываются
основы 3d игр), моделируем девушку в 3d studio max, уроки музыки - пишем
музыку в Fruity Loops Studio
megainformatic
cms express files - это простое, быстрое и очень компактное решение
для создания первого вашего сайта. НЕ ИСПОЛЬЗУЕТ базы данных mysql.
Вместо этого используются файловые базы данных. Поэтому Вы
можете использовать систему даже на хостинге с поддержкой php, но
без поддержки баз данных my sql.
Очень
проста в установке - достаточно вам скопировать все файлы на ваш
хостинг и сайт готов к работе !!!
В комплект входят 3 готовых шаблона, модули поиска и карты сайта,
а также статьи по основам создания сайта.