danilaxxl danilaxxl

CollectableItemData.cs

[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]

GoloGames GoloGames

vadya_ivan, рад, что вам игра показалась интересной : )

P.S. Кстати уже доступна бесплатная демо-версия в Steam

vadya_ivan vadya_ivan

Визуал, задумка, музыка , механики, все в цель

GoloGames GoloGames

Ato_Ome, спасибо за позитивные эмоции, будем стараться : )

Ato_Ome Ato_Ome

Потрясающий результат, все так четенько, плавненько)
То ли саунд, то ли плавность напомнили мне игрушку World of Goo, удачи вам в разработке и сил побольше дойти до релиза!)

Cute Fox Cute Fox

Graphics are a little cool, good HD content. But this game doesn't cause nary interest me.
However the game is well done.

GMSD3D GMSD3D

Почему действие после всех условий выполняется?
[step another object]

Zemlaynin Zemlaynin

Jusper, Везде, но наугад строить смысла нет. Нужно разведать сперва территорию на наличие ресурсов.

Jusper Jusper

Zemlaynin, а карьеры можно будет везде запихать?
Или под них "особые" зоны будут?

Zemlaynin Zemlaynin

Это так скажем тестовое строительство, а так да у города будет зона влияния которую нужно будет расширять.

Jusper Jusper

А ссылка есть?

Jusper Jusper

Я не оч понял из скриншота, как вообще работает стройка. У игрока будет как бы поле строительства?

split97 split97

в игру нужно добавить время песочные часы в инвентаре, пока бегаешь наберается усталость и ты очень тормозной мобильный враг просто убевает

split97 split97

в игру нужно добавить время песочные часы в инвентаре, пока бегаешь наберается усталость и ты очень тормозной мобильный враг просто убевает

ViktorJaguar ViktorJaguar

Почему я нигде не могу найти нормальный туториал, где покажут как экипировать предмет (например, меч) в определенную (выделенную под оружие) ячейку???

Логотип проекта Unity

Компоненты

И вот, зайдя в юнити и прочитав пару статей, вы обращаете внимание на панельку под названием Inspector.

Компоненты — Unity — DevTribe: инди-игры, разработка, сообщество

Каждое подменю - это так называемый компонент. Что это? Вкратце - кусочки, из которых складывается поведение объекта, его положение в мире и все-все-все. Так, например, компонент Collider дает предмету осязаемую форму, на которую смогут реагировать другие объекты, у которых есть компонент, ответственный за физику - RigidBody, не говоря о Transform, который позволяет нашему предмету иметь в мире положение, масштаб и поворот. Вкратце говоря, если Game Object - предмет, то компоненты - его свойства.

Компоненты — Unity — DevTribe: инди-игры, разработка, сообщество

Важно понимать, что компонент - любой класс, наследуемый от Component.

Компоненты — Unity — DevTribe: инди-игры, разработка, сообщество

На этих кирпичиках и строится мир в юнити. Попробуем написать собственный компонент.
Дважды кликнув по выбранному в поле Script файлу, или найдя этот файл в папке проекта, мы попадем в нашу рабочую среду, где и будем творить.
По умолчанию это MonoDevelop, но вы всегда можете сменить на другой в Edit/Preferences/ExternalTools.
Создадим новый скрипт пройдя в меню Assets/Create/C#Script. Новый скрипт, для примера, мы назовем "SomeComponent".
И вот мы смотрим на код.

using UnityEngine;
using System.Collections;

public class SomeComponent : MonoBehaviour {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}

Разберем этот код. (Важно - имя класса обязательно должно совпадать с именем файла).

Замечу, что функции Start, Update и FixedUpdate есть только в тех компонентах, что наследуются от MonoBehaviour.
MonoBehaviour - это компонент, описывающий поведение объекта. Отсюда и слово "Behaviour". Скажем, это может быть поведение юнита, здания, игрока, двери или еще какой другой оказии в игровом мире. Чтобы обеспечить взаимодействие с миром и сделаны специальные методы, которые позволяют нам отслеживать окружающие изменения.

Start - вызывается при появлении этого компонента на нашей сцене (Если был там с самого начала - запустится при запуске сцены), появился ли он во время игры вместе с некоторым новым объектом или был добавлен уже к существующему.

Update - этот метод вызывается каждый раз при перерисовке картинки на экране. Замечу, что добавив слово Fixed вы получите...

FixedUpdate - метод, вызывающийся каждый раз, при каждом просчете физики.

Немного отвлечемся. Вы правильно поняли, физика и графика идут раздельно и считаются с разными периодами. Это позволяет, к примеру, полностью останавливая просчет физики, не трогать ничего, связанного с графикой.

Это основные, общие для всех компонентов функции, но не единственные.

	// Update is called once per frame
	void Update () {
              transform.position = transform.position + Vector3.up;	
	}

Так например этот код будет каждый раз при перерисовке графики поднимать наш объект на 1 единицу вверх.

Важно заметить, что все публичные переменные, объявленные в этом классе, автоматически появляются в подменю, где их можно будет изменить на те значения, какие будут нужны при запуске сцены, если вы конечно не написали кастомное, хотя, вряд ли вы тогда читали бы эту статью.

Смотрите также:


Комментарии



Хорошая статья, отдельно спасибо за иерархии.

Хотелось бы добавить для читателей, что кол-во вызовов Update() в секунду(читай - FPS) может розниться, в то время как кол-во вызовов FixedUpdate() в секунду будет одно и то же, т.е. фиксировано.

Это не FixedUpdate вызывается каждый раз, когда просчитывается физика, это физика просчитывается каждый раз, когда вызывается FixedUpdate. Сам по себе, FixedUpdate - просто повторяющееся с определенной периодичностью событие. Насчет упоминания инспектора промолчу, у меня и так уже был спор с кем-то насчет этого в каком-то ресурсе проекта.

lentinant:

Насчет упоминания инспектора промолчу, у меня и так уже был спор с кем-то насчет этого в каком-то ресурсе проекта.

Со мной :)

Справка