Этот урок скорее справка рассчитан для того кто полностью знает интерфейс Unity!

Я программирую в Unity на языке JavaScript потому что я web-мастер и не много знаю JS поэтому мне так удобней.

Смотрим скрипт:

var projectile : Rigidbody; // переменная “projectile” у которой значение может быть только физический объект
function Update() // выполнять каждый кадр
{
if( Input.GetButtonDown (“Fire1″) ) // условие: если вы нажали левую кнопку мыши
{
var instantiatedProjectile : Rigidbody =
Instantiate( projectile, transform.position, transform.rotation ); // создание нового объекта в той же позе и развороте что и материнский объект
}
if (Input.GetKeyDown(“t”)) // условие: если вы нажали на клавиатуре кнопку “t”
{
transform.localPosition += Vector3(0, 0, 1); // передвинуть на 1 метр вперёд по локальной системе кординат (есть так же и мировая)
}
}

Теперь разберём всё по порядку.

var projectile : Rigidbody;

параметр var указывает на то что projectile это переменная, после двоеточие пишется значение переменной

Rigidbody – это игровой объект имеющий физику т.е. если у объекта нет группы параметров Rigidbody (Component>Physics>Rigidbody) то вы не сможете в редакторе (в Unity) в переменную projectile указать этот объект. Точка с запятой ( ; ) в конце этой строчки обязательны(!) потому что без них скрипт просто не будет работать а Юнити не даст вам запустить/скомпилировать проект!

function Update() – эта функция (function) выполняется каждый кадр. А фигурные скобки (обязательны!) указывают на то что будет внутри функции (т.е. сама функция). Функция – это набор действий.

if( Input.GetButtonDown (“Fire1″) )  - это условие.

Тег If обозначает условие, а то что в скобках, что надо проверить.

Тег Input обозначает вводную информацию т.е. кнопку.

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

Тег Fire1 означает левую кнопку мыши.

var instantiatedProjectile : Rigidbody =Instantiate( projectile, transform.position, transform.rotation ); – копирует объект указанный в переменной projectile и указывает его параметры нахождения в пространстве, а именно родительские. К примеру если мы повесим перед Fest Persen Controller куб и привяжем у нему этот скрипт и укажем в переменную projectile перфаб этого куба то при нажатии левой кнопки мыши создаться куб (перфаб) на месте куба который пере нашим FPC. А если у нашего куба есть Collider(колайдер) и  Rigidbody то созданный куб отлетит по всем законам физики.

projectile – переменная. В данном случае эту переменную я написал что бы казать что именно создавать, значение этой переменной мы задаём с помощью строчки в самом начале, а именно: var projectile : Rigidbody; . Не забывайте то что значение переменной Projectile мы задаём в Unity

transform.position – обозначает положение в пространстве, в данном случае он наследует родительские параметры.

transform.rotation – обозначает вращение в пространстве, в данном случае он наследует родительские параметры.

Точка с запятой обязательны(!) да бы скрипт благополучно работал и Unity не жаловался.

if (Input.GetKeyDown(“t”)) – думаю объяснять не надо ибо я описал всё описал выше

GetKeyDown – обозначает нажатие клавиши клавиатруы или геймпада.

transform.localPosition += Vector3(0, 0, 1);   – смещение в пространстве по оси Z т.е. вперёд относительно локальной измерительной сетки. Отличие локальной сетки и глобальной я опишу в следующем посте.

transform.localPosition – означает изменения позиции относительно локальной сетки

Vector3(0, 0, 1) – означает перемещения в пространстве по оси z

+= означает что к исходным значениям (в данный момент) прибавиться другое значени.

В следующем посте я напишу урок по применению данного скрипта, точнее пример.

Всем спасибо за внимание! Удачи в разработках! :)

VN:F [1.9.3_1094]
Rating: 6.4/10 (18 votes cast)
VN:F [1.9.3_1094]
Rating: +1 (from 3 votes)
Азы. Создание объекта., 6.4 out of 10 based on 18 ratings

16 комментариев на «Азы. Создание объекта.»

  1. Kakiho
    Kakiho пишет:

    жду коментов и оценок))

    VN:F [1.9.3_1094]
    Rating: 5.0/5 (5 votes cast)
    VN:F [1.9.3_1094]
    Rating: +4 (from 4 votes)
  2. Neodrop

    Большая просьба – внимательнее с форматирование статей, не стоит целиком вываливать всё на первую страницу. Подправил. Изучите как.
    Так же есть теги форматирования кода ;)

    VN:F [1.9.3_1094]
    Rating: 2.0/5 (2 votes cast)
    VN:F [1.9.3_1094]
    Rating: +1 (from 3 votes)
  3. Kakiho
    Kakiho пишет:

    Ну…. Это всего лишь один малюсенький скрипт, я прост описал его подробностях, дабы поняли все новички)))) От души разжевал не правда ли?))

    VN:F [1.9.3_1094]
    Rating: 5.0/5 (2 votes cast)
    VN:F [1.9.3_1094]
    Rating: +2 (from 4 votes)
  4. mrBrooks
    mrBrooks пишет:

    Вот, все круто. Статья норм.

    Оффтоп. Я сам недавно начал изучать Юнити. Но пришел к выводу, что лучше не находить то, что мне нужно и по быстрому понять, как этим пользоваться, да написать код.
    Лучше монотонно, без скачков пройтись от самого начала, до самого конца всех приблуд кода (функций и классов) и потом уже браться за игру.

    Теперь возврат. Статья норм.
    Но я бы дал тебе твердую 5ку, если бы ты лучше занялся описанием полноценных классов и элементов с примерами их реализации.
    К примеру, GUIStyle (http://unity3d.com/support/documentation/ScriptReference/GUIStyle.html) – настолько обширен в своих возможностях. И расписать его полностью на русском – вот это зачет.
    GUISkin, переходы от одного приложения (сцены) к другому – это важнее, нежели научиться стрелять ракетой.
    Как говорится, “Hello World” Никто до сих пор не отменял – это самый правильный начальный шаг учителя ученикам.

    VN:F [1.9.3_1094]
    Rating: 5.0/5 (1 vote cast)
    VN:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  5. mrBrooks
    mrBrooks пишет:

    И, напоследок. Если взялся отписывать все каждый день и хочешь так делать – делай, только не стоит кидать темы типа кости собачке. Ну не серьезно это:
    “Этот урок скорее справка рассчитан для того кто полностью знает интерфейс Unity!”
    И дальше скоростной текст-”разжевывание” непонятного кода непонятно откуда вырезанного и для чего приспособленного.
    Как новичок скажу, что это убило мое время. Ну и троллингом позволило заняться)

    VN:F [1.9.3_1094]
    Rating: 5.0/5 (2 votes cast)
    VN:F [1.9.3_1094]
    Rating: -1 (from 1 vote)
  6. Kakiho
    Kakiho пишет:

    mrBrooks да наверное я не правильно написал статью для новичков. Исправил. В будущем буду внимательнее и стараться правильно оформлять! Спасибо что поправили!)))

    VN:F [1.9.3_1094]
    Rating: 5.0/5 (2 votes cast)
    VN:F [1.9.3_1094]
    Rating: +1 (from 1 vote)
  7. aLDime

    Спасибо ОГРОМНОЕ!!! По Юнити скриптингу для начинающих (читать не программеров) могу сказать с уверенностью 100000% нет ровным счётом ничего!!! Я вобще не понимаю разрабов совта которые пишут вродебы доступный инструмент, но при этом полность лишают себя львинной доли рынка проф. 2D/3D Художников коим я и являюсь, и за чем-то пишут мануалы,рефернсы, справки и туторы для проф. програмистов, которые и без того “шарят”..
    У роки типа как создать бокс/сферу в Юнити и даже “как импортнуть fbx” – это для кого????
    Для новичков? Но они всё равно не “потяну” пока не изучат досканально одну из сторон ГеймДева – либо программинг либо графу… Короче, я не понимаю разработчиков которые просто наплевали на художников и лиши их нормального понимания скриптинга (VIZIO & GameMarker не предлогать ибо теже помидоры), не говоря уже о понятном Визуальном интерфейсе типа драг-анд-дроб…
    Очень жаль, если не науйд оптимального решения, придётся забросить затею покупки Юнити и создания задуманного… И таких тысячи!!! Не верите? Погуглите и посмотрите “запросы”…

    Но я так понял и у вас на этом всё?((

    VN:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.3_1094]
    Rating: +1 (from 1 vote)
  8. virgil

    exaltations@howsomever.energizing” rel=”nofollow”>.…

    сэнкс за инфублагодарю…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  9. Ryan

    recipient@deadly.expressionistic” rel=”nofollow”>.…

    благодарен!!…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  10. Duane

    gabler@cleverness.yankee” rel=”nofollow”>.…

    спс за инфу!…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  11. Wallace

    mashed@gregory.fergusson” rel=”nofollow”>.…

    спасибо за инфу….

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  12. gerard

    implies@campers.disintegrative” rel=”nofollow”>.…

    благодарю….

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  13. jorge

    eeae@ching.interchangeable” rel=”nofollow”>.…

    благодарствую!!…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  14. Armando

    lewisohn@dora.progandist” rel=”nofollow”>.…

    спс….

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  15. oliver

    theater@druid.other” rel=”nofollow”>.…

    благодарен!!…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  16. Stephen

    paide@trucker.melange” rel=”nofollow”>.…

    спасибо за инфу!!…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)

Ваш отзыв

Вы должны войти, чтобы оставлять комментарии.



Страница 1 of 0