Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 25.05.2011, 19:54   #1
ARTMAN
Оператор ЭВМ
 
Регистрация: 22.10.2008
Сообщений: 38
Написано 0 полезных сообщений
(для 0 пользователей)
Сообщение Начинаю изучать Unity. Минимальный проект.

Здраствуйте! Решил заняться Unity.

Для себя решил, что буду писать на C#.

Первый учебный проект будет таким:
Есть пушка.
Пушка поворачивается мышью по двум осям. (право, лево, верх, низ)
Стреляет по нажатию правой кнопки мыши.
Снаряд - сфера. (с встроенной физикой Unity)
Цели - кубы которые переодически появляются на игровом поле.

Хотел бы узнать какими коммандами работать с мышью,
с созданием нового ядра пушки (клонирование префаба)
и придания ему импульса.
(Offline)
 
Ответить с цитированием
Старый 25.05.2011, 20:03   #2
Nazgul
Нуждающийся
 
Регистрация: 14.01.2011
Сообщений: 72
Написано 9 полезных сообщений
(для 44 пользователей)
Ответ: Начинаю изучать Unity. Минимальный проект.

1) Поворот мыши по осям:
http://unity3d.com/support/documenta...t.GetAxis.html
Отследить нажатие на правую кнопку мыши:
void Update() { () {
     if (
Input.GetKeyDown (KeyCode.Mouse1)){
           
//действия
     
}

http://unity3d.com/support/documenta...etKeyDown.html
2) Клонирование префаба:
http://unity3d.com/support/documenta...rom=GameObject
3) Приданиe импульса сфере
http://unity3d.com/support/documenta....AddForce.html
К сфере должен быть прикреплен Rigidbody.

В документации язык примеров с JavaScript на C# перевести не забудь

Последний раз редактировалось Nazgul, 26.05.2011 в 09:20.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ARTMAN (25.05.2011)
Старый 25.05.2011, 20:30   #3
ARTMAN
Оператор ЭВМ
 
Регистрация: 22.10.2008
Сообщений: 38
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Начинаю изучать Unity. Минимальный проект.

Огромное спасибо, Nazgul.
Всё что надо. Ничего лишнего.
(Offline)
 
Ответить с цитированием
Старый 25.05.2011, 20:38   #4
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Начинаю изучать Unity. Минимальный проект.

Небольшое дополнение:
всё это есть у тебя вместе с поставкой юнити. Лезть в меню Help -> Scripting Reference (как я понял по тексту, понятие об архитектуре Юнити у тебя есть)

Удачи в начинании!
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 25.05.2011, 22:53   #5
ARTMAN
Оператор ЭВМ
 
Регистрация: 22.10.2008
Сообщений: 38
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Начинаю изучать Unity. Минимальный проект.

На меня ругаются...
Assets/example2.cs(10,23): error CS0266: Cannot implicitly convert type `UnityEngine.Object' to `UnityEngine.Rigidbody'. An explicit conversion exists (are you missing a cast?)

хотя всё по примерам из справки:
public class example : MonoBehaviour {
public Rigidbody projectile;
void Update() {
if (Input.GetButtonDown("Fire1")) {
Rigidbody clone;
 clone = Instantiate(projectile, transform.position, transform.rotation);
 clone.velocity = transform.TransformDirection(Vector3.forward * 10);
 }
 }
}
(Offline)
 
Ответить с цитированием
Старый 26.05.2011, 00:00   #6
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Начинаю изучать Unity. Минимальный проект.

Instantiate всегда возвращает GameObject (который частный случай Object)
Правильно:
GameObject clone;
+
clone.rigidbody.velocity
Вообще с gameObject в общем случае удобнее работать, применение конкретно отдельных полей (transform, position, rigidbody) может быть оправданно только в узких задачах когда лень писать многозначительные "крюки" .rigidbody.

Если из Instantiate надо вытащить сразу какую-то компоненту:
clone = Instantiate(projectile, transform.position, transform.rotation).rigidbody;
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ARTMAN (26.05.2011)
Старый 27.05.2011, 14:48   #7
ARTMAN
Оператор ЭВМ
 
Регистрация: 22.10.2008
Сообщений: 38
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Начинаю изучать Unity. Минимальный проект.

Ещё вопросик.
Как получить поворот пушки, чтобы выпустить снаряд в направлении поворота?
(Offline)
 
Ответить с цитированием
Старый 27.05.2011, 15:27   #8
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Начинаю изучать Unity. Минимальный проект.

поворот получаешь из transform.rotation
(Offline)
 
Ответить с цитированием
Старый 27.05.2011, 16:59   #9
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Начинаю изучать Unity. Минимальный проект.

но конкретно для снаряда проще установить transform.forward снаряда = transform.forward пушки (если пушка конечно не смотрит передним концом вбок О_о от модели и/или иерархии зависит)

Обожаю вектора в юнити)
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ARTMAN (27.05.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 16:19.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com