Пятница, 29 Марта 2024, 14:49

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » синтаксис языка c# в движке unity3d
синтаксис языка c# в движке unity3d
ArtemoidДата: Вторник, 24 Марта 2015, 19:50 | Сообщение # 1
частый гость
Сейчас нет на сайте
Всем доброго дня smile я решил запилить игру на движке unity3d. Модель сделал, интерфейс движка давно знаком, начал изучать c#, но вот беда: в юнити есть свой синтаксис,нормальных статей по которому я найти не могу. Они либо старые, либо мало в них информации.
Я хоть и ашел что писатьдля того, чтоб реагировали на определённые кнопки, но(к примеру хочу сделать передвижение от 1-го лица) что писать, чтобы персонаж понял,часто я хочу чтобы он двигался? В готовых тоже не очень все понятно...прочесму, что и где.
Короче говоря: пожалуйста накидайте мне хорошего материала по этой теме smile
Всем заранее спасибо!!
harmoxyneДата: Вторник, 24 Марта 2015, 20:11 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
И раз
И два
По первой ссылке примеры, по второй - абсолютно всё, что есть в стандартном юнити.
RangerДата: Вторник, 24 Марта 2015, 20:16 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
http://habrahabr.ru/search/?q=unity3d

=============>
Цитата QNicolya ()
начал изучать c#

Это да. Надо.




Сообщение отредактировал Ranger - Вторник, 24 Марта 2015, 20:17
berilДата: Вторник, 24 Марта 2015, 21:22 | Сообщение # 4
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
В каждом движке свой API. Можешь видео по скриптингу глянуть на моем канале, может что то поможет, как раз для начинающих

Р.с кто знает, в пределах какой версии .NET можно писать. Вроде раньше 2.0 было, с выходом unity 5 что то изменилось?




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
ArtemoidДата: Вторник, 24 Марта 2015, 23:13 | Сообщение # 5
частый гость
Сейчас нет на сайте
Цитата QNicolya ()
QNicolya Дата: Вторник, сегодня, 20:11 | Сообщение # 2
[QNicolya]
постоянный участник
Сообщений: 348
Всего наград: 0
Репутация: 107 ±
Замечания: 0%
Сейчас нет на сайте
И раз
И два
По первой ссылке примеры, по второй - абсолютно всё, что есть в стандартном юнити.

1.Спасибо smile
2. Я так и не допёр..пытаюсь создать управление персонажем, но не понимаю что там, к чему и от чего. Можете разьяснить мне всю структуру и логику скрипта? Если надо будет - скину сюда.

Добавлено (24 марта 2015, 23:13)
---------------------------------------------

Цитата Ranger ()
Ranger Дата: Вторник, сегодня, 20:16 | Сообщение # 3
[Ranger]
заслуженный участник
Сообщений: 654
Всего наград: 0
Репутация: 170 ±
Замечания: 0%
Сейчас нет на сайте
http://habrahabr.ru/search/?q=unity3d

=============>
Цитата QNicolya ()
начал изучать c#

Это да. Надо.



Ну поиск и я могу запилить где угодно, но особо это ничего не дало. Мне бы на юнити 5....ибо заметил, что скрипты с 4 юнити на 5 не работают. С чем связано?
MANMANAДата: Среда, 25 Марта 2015, 00:23 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
Создай на сцене кубик
Сохрани сцену
Создай в Assets (прям рядом с файлом созданной сцены) C# скрипт с именем ExampleClass
открой созданный скрипт, удали в нем все
вставь вот этот код
Код
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
        public float speed = 10.0F;//переменная отвечающая за скорость перемещения кубика. если стоит public, то в скрипте редактировать значение данной переменной бесполезно. Значение скорости можно менять в Inspector'е (у меня, например, справа от сцены), предварительно кликнув на кубе, после чего под названием скрипта (все там же справа) увидите Speed. если хочется менять значение из скрипта, то нужно удалить public
        public float rotationSpeed = 100.0F;//все то же самое, что и выше, но для "скорости" поворота куба
        void Update() {//функция выполняющаяся каждый кадр
            float translation = Input.GetAxis("Vertical") * speed;//приравниваем переменной translation значения (от -1 до 1) считанные от кнопок вперед/назад или W/S помноженные на значение переменной speed. Переменная translation будет использоваться для перемещения куба вперед-назад
            float rotation = Input.GetAxis("Horizontal") * rotationSpeed;//приравниваем переменной rotation значения (от -1 до 1) считанные от кнопок влево/вправо или A/D помноженные на значение переменной rotationSpeed. Переменная rotation будет использоваться для поворота куба влево и вправо
            translation *= Time.deltaTime;//умножая значение переменной на Time.deltaTimeна убираем зависимость от fps (frames fer second)
            rotation *= Time.deltaTime;//то же самое для вращения
            transform.Translate(0, 0, translation);//двигаем куб
            transform.Rotate(0, rotation, 0);//поворачиваем куб
        }
}

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

код взят с сайта Unity (ссылка на пример из API)

Добавлено (25 марта 2015, 00:23)
---------------------------------------------
перемещение персонажа достигается путем использования компонента Animator
персонаж с назначенными анимациями в Аниматоре может перемещаться за счет приведенного выше скрипта (плюс использование стейт-машины Аниматора для запуска самих анимаций), если анимация записана на месте (либо принудительно настроена на топтание на месте),
либо, если анимация записана/изготовлена с перемещением вперед/назад/влево/вправо, то посредством машины состояний и переходов между ее стейт'ами персонаж будет двигаться согласно записанным анимациям (которые запускаются из соответствующих стейтов посредством все того же считывания кнопок управления/мыши).

Добавив на персонажу компонент Rigidbody, мы придадим ему физическую сущность, т.е. персонаж будет обладать массой, и на него будет действовать сила тяжести, так что, если под ним нет террейна или объекта с коллайдером, то персонаж будет падать в бездну.


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею


Сообщение отредактировал MANMANA - Среда, 25 Марта 2015, 00:24
RangerДата: Среда, 25 Марта 2015, 06:41 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
Цитата Artemoid ()
Ну поиск и я могу запилить где угодно, но особо это ничего не дало.

Ну дело хозяйское. На хабре рекомендуется к изучению чуть менее чем все материалы с тэгом unity.

Цитата Artemoid ()
скрипты с 4 юнити на 5 не работают

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




Сообщение отредактировал Ranger - Среда, 25 Марта 2015, 06:47
KamiRoninДата: Среда, 25 Марта 2015, 07:54 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
Цитата MANMANA ()
перемещение персонажа достигается путем использования компонента Animator

smile MANMANA, ты так его в конец запутал!! smile
он спрашивает про CharacterController жеж.. пишет "от 1го лица"..

Artemoid, в поставку Unity включены скрипты для управления персонажами от первого и третьего лица.. и даже готовые персонажи включены - 3rd Person Controller, First Person Controller.
кидай их на сцену и смотри как устроены.

по синтаксису С# в Unity - не пугайся, синтаксис не отличается от стандартного C#, просто используется подключение Unity API и классов через два основных пространства имен - UnityEngine и UnityEditor. Плюс нет возможности использовать в проекте некоторые другие пространства имен напрямую, System.Drawing например. Поэтому нужно просто изучить классы, функции и поля этих пространств имен (в основном первого). А это есть в справке.

Логика действия скриптов - простая - прикрепляешь к игровому объекту скрипт и он сразу действует согласно API и устройству класса предка (обычно MonoBehaviour).
Вот одна из миллиона статей как начать на unity

beril, с каждой следующей версией возможности C# вроде расширяли, см. тут, тут! и тут


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.


Сообщение отредактировал KamiRonin - Среда, 25 Марта 2015, 07:57
ArtemoidДата: Среда, 25 Марта 2015, 08:33 | Сообщение # 9
частый гость
Сейчас нет на сайте
Цитата KamiRonin ()
KamiRonin Дата: Среда, сегодня, 07:54 | Сообщение # 8
[KamiRonin]
заслуженный участник
Сообщений: 707
Всего наград: 1

Репутация: 446 ±
Замечания: 0%
Сейчас на сайте

Цитата MANMANA ()
перемещение персонажа достигается путем использования компонента Animator

smile MANMANA, ты так его в конец запутал!! smile
он спрашивает про CharacterController жеж.. пишет "от 1го лица"..

Artemoid, в поставку Unity включены скрипты для управления персонажами от первого и третьего лица.. и даже готовые персонажи включены - 3rd Person Controller, First Person Controller.
кидай их на сцену и смотри как устроены.

по синтаксису С# в Unity - не пугайся, синтаксис не отличается от стандартного C#, просто используется подключение Unity API и классов через два основных пространства имен - UnityEngine и UnityEditor. Плюс нет возможности использовать в проекте некоторые другие пространства имен напрямую, System.Drawing например. Поэтому нужно просто изучить классы, функции и поля этих пространств имен (в основном первого). А это есть в справке.

Логика действия скриптов - простая - прикрепляешь к игровому объекту скрипт и он сразу действует согласно API и устройству класса предка (обычно MonoBehaviour).
Вот одна из миллиона статей как начать на unity

beril, с каждой следующей версией возможности C# вроде расширяли, см. тут, тут! и тут
Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.

Так я так и делал, но ничего так и не могу понять) зачем что в скобки ставят особенно...юнити понадобавлял своих функций
KamiRoninДата: Среда, 25 Марта 2015, 08:48 | Сообщение # 10
почти ветеран
Сейчас нет на сайте
Цитата Artemoid ()
зачем что в скобки ставят особенно

smile там правила те же что и для C# - если ты ВООБЩЕ знаком с C# - то все будет понятно, иначе - изучай сначала сам ЯП!! Unity тут не причем.

а скобки, особенно угловые в Unity C# это получение компонентов программным путем..

в общем учи язык программирования C# сам по себе. потом сможешь разобраться.


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
MANMANAДата: Среда, 25 Марта 2015, 11:26 | Сообщение # 11
почти ветеран
Сейчас нет на сайте
Цитата KamiRonin ()
он спрашивает про CharacterController жеж.. пишет "от 1го лица"..

пардон, кубик меняем на камеру smile
второй пардон, камеру делаем дочерней к кубику smile
На кошках стоит потренироваться, ИМХО.
возможно, ты правильно сказал, нуна ему ЯП изучать, например, есть отличный учебник C# для школьников (там и про .NET есть). сам читал. Даны основы и понимание основ. еще одна хорошая книга для понимания основ ООП, правда по Java "Файн Я. - Программирование на Java для детей, родителей, дедушек и бабушек", 2011. Также пригодится, если под Андрюшу писать. Тож с нее начинал нативный Ведроид изучать.
эти книги отлично дополнят описание API, представленного на оф. сайте Юнити.

Цитата Artemoid ()
юнити понадобавлял своих функций

а Вы хотели всё писать с использованием лишь .NET?
или .NET тоже от лукавого? smile


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
seamanДата: Среда, 25 Марта 2015, 19:29 | Сообщение # 12
старожил
Сейчас нет на сайте
Цитата
в юнити есть свой синтаксис

Нет в Юнити своего синтаксиса!
ArtemoidДата: Среда, 25 Марта 2015, 21:38 | Сообщение # 13
частый гость
Сейчас нет на сайте
Цитата MANMANA ()
MANMANA Дата: Среда, сегодня, 00:23 | Сообщение # 6
постоянный участник
Сообщений: 459
Всего наград: 0
Репутация: 142 ±
Замечания: 0%
Сейчас нет на сайте
Создай на сцене кубик
Сохрани сцену
Создай в Assets (прям рядом с файлом созданной сцены) C# скрипт с именем ExampleClass
открой созданный скрипт, удали в нем все
вставь вот этот код
Код
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
public float speed = 10.0F;//переменная отвечающая за скорость перемещения кубика. если стоит public, то в скрипте редактировать значение данной переменной бесполезно. Значение скорости можно менять в Inspector'е (у меня, например, справа от сцены), предварительно кликнув на кубе, после чего под названием скрипта (все там же справа) увидите Speed. если хочется менять значение из скрипта, то нужно удалить public
public float rotationSpeed = 100.0F;//все то же самое, что и выше, но для "скорости" поворота куба
void Update() {//функция выполняющаяся каждый кадр
float translation = Input.GetAxis("Vertical") * speed;//приравниваем переменной translation значения (от -1 до 1) считанные от кнопок вперед/назад или W/S помноженные на значение переменной speed. Переменная translation будет использоваться для перемещения куба вперед-назад
float rotation = Input.GetAxis("Horizontal") * rotationSpeed;//приравниваем переменной rotation значения (от -1 до 1) считанные от кнопок влево/вправо или A/D помноженные на значение переменной rotationSpeed. Переменная rotation будет использоваться для поворота куба влево и вправо
translation *= Time.deltaTime;//умножая значение переменной на Time.deltaTimeна убираем зависимость от fps (frames fer second)
rotation *= Time.deltaTime;//то же самое для вращения
transform.Translate(0, 0, translation);//двигаем куб
transform.Rotate(0, rotation, 0);//поворачиваем куб
}
}

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

код взят с сайта Unity (ссылка на пример из API)

Добавлено (25 марта 2015, 00:23)
---------------------------------------------
перемещение персонажа достигается путем использования компонента Animator
персонаж с назначенными анимациями в Аниматоре может перемещаться за счет приведенного выше скрипта (плюс использование стейт-машины Аниматора для запуска самих анимаций), если анимация записана на месте (либо принудительно настроена на топтание на месте),
либо, если анимация записана/изготовлена с перемещением вперед/назад/влево/вправо, то посредством машины состояний и переходов между ее стейт'ами персонаж будет двигаться согласно записанным анимациям (которые запускаются из соответствующих стейтов посредством все того же считывания кнопок управления/мыши).

Добавив на персонажу компонент Rigidbody, мы придадим ему физическую сущность, т.е. персонаж будет обладать массой, и на него будет действовать сила тяжести, так что, если под ним нет террейна или объекта с коллайдером, то персонаж будет падать в бездну.


Цитата MANMANA ()
MANMANA Дата: Среда, сегодня, 11:26 | Сообщение # 11
постоянный участник
Сообщений: 459
Всего наград: 0
Репутация: 142 ±
Замечания: 0%
Сейчас нет на сайте

Цитата KamiRonin ()
он спрашивает про CharacterController жеж.. пишет "от 1го лица"..

пардон, кубик меняем на камеру smile
второй пардон, камеру делаем дочерней к кубику smile
На кошках стоит потренироваться, ИМХО.
возможно, ты правильно сказал, нуна ему ЯП изучать, например, есть отличный учебник C# для школьников (там и про .NET есть). сам читал. Даны основы и понимание основ. еще одна хорошая книга для понимания основ ООП, правда по Java "Файн Я. - Программирование на Java для детей, родителей, дедушек и бабушек", 2011. Также пригодится, если под Андрюшу писать. Тож с нее начинал нативный Ведроид изучать.
эти книги отлично дополнят описание API, представленного на оф. сайте Юнити.

Цитата Artemoid ()
юнити понадобавлял своих функций

а Вы хотели всё писать с использованием лишь .NET?
или .NET тоже от лукавого? smile


Скрипт вполне хорош, но мне всётаки для 1-го лица нужен, а значит с помощью поворота камеры мышью. Как в шутерах....
Учебник по C# дома есть, даже два...толстенных(там только оглавление 42 страницы biggrin )
Ну а основы и т.д.....это в принципе всё ясно, но не ясно как использовать это в юнити. Что писать....Это получается надо копаться в библиотеке(или что это?) MonoBehaviour и смотреть функции там?
Я ещё хотел что-то простое, вроде: при нажатии кнопки двигайся туда. А я так и не допёр на каких основаниях мы просто берём горихонтальные и вертикальные оси...просто напросто в той библиотеке есть уже заранее заготовленное и мы это просто вызываем?
Честно говоря мне тут даже папа не мог помочь разобраться в этом всём wacko

Добавлено (25 марта 2015, 21:38)
---------------------------------------------

Цитата seaman ()
seaman Дата: Среда, сегодня, 19:29 | Сообщение # 12
почти ветеран
Сообщений: 890
Всего наград: 0
Репутация: 253 ±
Замечания: 40%
Сейчас нет на сайте

Цитата
в юнити есть свой синтаксис

Нет в Юнити своего синтаксиса!

Ну а как это тогда назвать?
FL_FlowДата: Среда, 25 Марта 2015, 21:59 | Сообщение # 14
частый гость
Сейчас нет на сайте
Artemoid,
http://docs.unity3d.com/ScriptReference/

Импортируй стандартный пак с управлением и смотри код в скриптах. )
MANMANAДата: Среда, 25 Марта 2015, 22:58 | Сообщение # 15
почти ветеран
Сейчас нет на сайте
Цитата Artemoid ()
Ну а как это тогда назвать?

Синтаксис_(программирование) с вики https://ru.wikipedia.org/wiki/Синтаксис_(программирование)
Синтаксис языка программирования — набор правил, описывающий комбинации символов алфавита, считающиеся правильно структурированной программой (документом) или её фрагментом. Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям...

Ну да ладно,
Цитата Artemoid ()
но мне всётаки для 1-го лица нужен, а значит с помощью поворота камеры мышью. Как в шутерах....

Создаешь в координатах 0, 0.5, 0 куб с масштабом 1,1,1
находишь на сцене mainCamera и ставишь ей координаты 0,2,0
делаешь ее дочерней к кубу путем перетаскивания в Иерархии на куб
на куб вешаешь вот этот скрипт (это подправленный верхний)
(название скрипта должно совпадать с названием класса)

Код
using UnityEngine;      
using System.Collections;      

public class ExampleClass : MonoBehaviour {      
      float speed = 10.0F;//переменная отвечающая за скорость перемещения персонажа вперед-назад
      float stepSpeed = 10.0F;//переменная отвечающая за шаг персонажа влево-вправо
      float horizontalSpeed = 2.0F;//скорость поворота персонажа
      void Update() {//функция выполняющаяся каждый кадр      
       float translation = Input.GetAxis("Vertical") * speed;
       float step = Input.GetAxis("Horizontal") * stepSpeed;
       translation *= Time.deltaTime;
       step *= Time.deltaTime;
       transform.Translate(0, 0, translation);//двигаем персонажа вперед-назад
       transform.Translate (step, 0, 0);//поворачиваем персонажа влево-вправо
       float h = horizontalSpeed * Input.GetAxis("Mouse X");
       transform.Rotate(0, h, 0);

      }      
}


на камеру вешаешь вот этот скрипт
Код
using UnityEngine;
using System.Collections;

public class CameraScript : MonoBehaviour {

      float verticalSpeed = 2.0F;
      void Update() {

       float v = -verticalSpeed * Input.GetAxis("Mouse Y");
       transform.Rotate(v, 0, 0);
      }
}

все, готов контроллер для шутера от первого лица. Осталось добавить приседания (перемещаем камеру чуть ниже, изменяем размер коллайдера по вертикали) и контрА готова...
Ну, стрельбу сам прикрутишь smile
p.s. в ссылке на API по GetAxis, которую я приводил выше, все это есть.

Добавлено (25 марта 2015, 22:58)
---------------------------------------------
p.s. забыли добавить модели рук с оружием и анимацией, которых можно найти кучу в сети... на том же blendswap.com можешь скачать
пыпысы в
Код
float v = -verticalSpeed * Input.GetAxis("Mouse Y");
можно убрать минус, чтобы инвертировать ось Y

а толстые книжки Вам еще рано читать. smile поднимайте уроки по Юнити для новичков. их много.


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею


Сообщение отредактировал MANMANA - Среда, 25 Марта 2015, 23:01
seamanДата: Среда, 25 Марта 2015, 23:25 | Сообщение # 16
старожил
Сейчас нет на сайте
Цитата
Ну а как это тогда назвать?

API
У любого движка, у любого фреймворка, у любой библиотеки в конце концов,- есть свой API. При этом все они могут быть написаны на одном языке с одним и тем же синтаксисом.


Сообщение отредактировал seaman - Среда, 25 Марта 2015, 23:26
ArtemoidДата: Четверг, 26 Марта 2015, 17:26 | Сообщение # 17
частый гость
Сейчас нет на сайте
Цитата MANMANA ()
MANMANA Дата: Среда, вчера, 22:58 | Сообщение # 15
постоянный участник
Сообщений: 460
Всего наград: 0
Репутация: 142 ±
Замечания: 0%
Сейчас нет на сайте

Цитата Artemoid ()
Ну а как это тогда назвать?

Синтаксис_(программирование) с вики https://ru.wikipedia.org/wiki/Синтаксис_(программирование)
Синтаксис языка программирования — набор правил, описывающий комбинации символов алфавита, считающиеся правильно структурированной программой (документом) или её фрагментом. Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям...

Ну да ладно,
Цитата Artemoid ()
но мне всётаки для 1-го лица нужен, а значит с помощью поворота камеры мышью. Как в шутерах....

Создаешь в координатах 0, 0.5, 0 куб с масштабом 1,1,1
находишь на сцене mainCamera и ставишь ей координаты 0,2,0
делаешь ее дочерней к кубу путем перетаскивания в Иерархии на куб
на куб вешаешь вот этот скрипт (это подправленный верхний)
(название скрипта должно совпадать с названием класса)

Код
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
float speed = 10.0F;//переменная отвечающая за скорость перемещения персонажа вперед-назад
float stepSpeed = 10.0F;//переменная отвечающая за шаг персонажа влево-вправо
float horizontalSpeed = 2.0F;//скорость поворота персонажа
void Update() {//функция выполняющаяся каждый кадр
float translation = Input.GetAxis("Vertical") * speed;
float step = Input.GetAxis("Horizontal") * stepSpeed;
translation *= Time.deltaTime;
step *= Time.deltaTime;
transform.Translate(0, 0, translation);//двигаем персонажа вперед-назад
transform.Translate (step, 0, 0);//поворачиваем персонажа влево-вправо
float h = horizontalSpeed * Input.GetAxis("Mouse X");
transform.Rotate(0, h, 0);

}
}

на камеру вешаешь вот этот скрипт
Код
using UnityEngine;
using System.Collections;

public class CameraScript : MonoBehaviour {

float verticalSpeed = 2.0F;
void Update() {

float v = -verticalSpeed * Input.GetAxis("Mouse Y");
transform.Rotate(v, 0, 0);
}
}

все, готов контроллер для шутера от первого лица. Осталось добавить приседания (перемещаем камеру чуть ниже, изменяем размер коллайдера по вертикали) и контрА готова...
Ну, стрельбу сам прикрутишь smile
p.s. в ссылке на API по GetAxis, которую я приводил выше, все это есть.

Добавлено (25 марта 2015, 22:58)
---------------------------------------------
p.s. забыли добавить модели рук с оружием и анимацией, которых можно найти кучу в сети... на том же blendswap.com можешь скачать
пыпысы в
Код
float v = -verticalSpeed * Input.GetAxis("Mouse Y");
можно убрать минус, чтобы инвертировать ось Y

а толстые книжки Вам еще рано читать. smile поднимайте уроки по Юнити для новичков. их много.

Спасибо, но обьяснили не до конца.
transform.Translate (step, 0, 0);//поворачиваем персонажа влево-вправо
что значит transform? Translate? Нолики и т.д. Я конеш извиняюсь..это может реально неудобно мне каждую фигню обьяснять. Но (к примеру) показать двигатель и сказать, что двигаем машину вперёд-назад....


Сообщение отредактировал Artemoid - Четверг, 26 Марта 2015, 17:48
MANMANAДата: Четверг, 26 Марта 2015, 22:09 | Сообщение # 18
почти ветеран
Сейчас нет на сайте
transform.Translate (step, 0, 0);//поворачиваем персонажа влево-вправо
здесь правильно читать приставной шаг влево-вправо

а теперь по делу:
Если вы не знаете основы ООП: как вызываются функции/методы, что такое объект, инстансы/экземпляры, пространство имен и т.д. Вы не знаете ничего, либо троллите...

Вот это http://docs.unity3d.com/ru....te.html API Юнити, конкретно эта ссылка ведет на transform.Translate(), а именно вызов функции public void Translate(Vector3 translation, Space relativeTo = Space.Self); в скобочках указываются параметры вызываемого метода, буковки перед вызываемым методом и до точки называются как?.. вопчем Вам нужно глубокое погружение в ООП или хотя бы знание основ ООП (я уже говорил про Файна и про C# для школьников). сможете отвечать на такие вопросы, задавайте вопросы по Unity

http://docs.unity3d.com/ru/current/Manual/UnityManualRestructured.html - мануал на русском, очень доходчивый и понятный, причем от производителя, т.е. брендовый, а не китайский-поддельный

p.s. читайте. не хотите, что ж... здесь много музыкантов было, которым нравились минусовки форумчан smile
p.s.s. смотрите видео


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
ArtemoidДата: Четверг, 26 Марта 2015, 22:22 | Сообщение # 19
частый гость
Сейчас нет на сайте
Цитата MANMANA ()
MANMANA Дата: Четверг, сегодня, 22:09 | Сообщение # 18
постоянный участник
Сообщений: 461
Всего наград: 0
Репутация: 142 ±
Замечания: 0%
Сейчас на сайте
transform.Translate (step, 0, 0);//поворачиваем персонажа влево-вправо
здесь правильно читать приставной шаг влево-вправо

а теперь по делу:
Если вы не знаете основы ООП: как вызываются функции/методы, что такое объект, инстансы/экземпляры, пространство имен и т.д. Вы не знаете ничего, либо троллите...

Вот это http://docs.unity3d.com/ru....te.html API Юнити, конкретно эта ссылка ведет на transform.Translate(), а именно вызов функции public void Translate(Vector3 translation, Space relativeTo = Space.Self); в скобочках указываются параметры вызываемого метода, буковки перед вызываемым методом и до точки называются как?.. вопчем Вам нужно глубокое погружение в ООП или хотя бы знание основ ООП (я уже говорил про Файна и про C# для школьников). сможете отвечать на такие вопросы, задавайте вопросы по Unity

http://docs.unity3d.com/ru/current/Manual/UnityManualRestructured.html - мануал на русском, очень доходчивый и понятный, причем от производителя, т.е. брендовый, а не китайский-поддельный

p.s. читайте. не хотите, что ж... здесь много музыкантов было, которым нравились минусовки форумчан smile
p.s.s. смотрите видео


Большими своими и папиными усилиями я всё понял и даже начал делать как мне больше нравится)Даже не читал ваше biggrin Вам большое спасибо за сам скрипт! Как ни как помогли сильно smile
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » синтаксис языка c# в движке unity3d
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг