|
Unity Мультиплатформенный инструмент для разработки игр |
28.07.2010, 14:14
|
#91
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Фак по Юнити.
Меняй Field of view камеры, если я правильно понял о чем ты.
|
Нее, это не то, это вобще по мойму угол обзора!
А мне надо приближение сделать, ну например кагбутто через биноколь смотриш.
|
(Offline)
|
|
28.07.2010, 14:19
|
#92
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Ну уменьши угол обзора до 15-10 единиц, будет тебе зум
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
28.07.2010, 14:29
|
#93
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Фак по Юнити.
Ну уменьши угол обзора до 15-10 единиц, будет тебе зум
|
а я наоборот увеличивал, иизображение кривое делалось...
спасибо!
|
(Offline)
|
|
28.07.2010, 23:06
|
#94
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Фак по Юнити.
Есчё один немного глупый вопрос :
т.к. я плохо знаю буржуйский, а промт переводит не понятно, то спрошу вас:
в Юнити есть рагдол виззарт (ГамеОбъект-КреатеОвер-Рагдол), и там появляется список частей тела, можете мне расказать что это за части по русски, а то сделал рагдола, а он ...
|
(Offline)
|
|
28.07.2010, 23:31
|
#95
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Я сам не пробовал, но в FPS туториале есть небольшое описание:
Ragdolls
Регдолл имитирует настоящую скелетную структуру, позволяя персонажу (нашему роботу) реалистично падать при смерти.- Сначала создайте новую сцену. Мы настроим регдолл здесь. Не забудьте сохранить текущую сцену.
- Создайте куб больших размеров. Он будет служить платформой для робота. Перетащите робота в сцену и расположите на кубе.
- Удалите компонент Animation. Это важно, иначе анимация будет конфиликтовать с физикой.
- Используйте мастера создания регдолла: Game object→Create Other→Ragdoll
В появившемся диалоговом окне нужно назначить все кости на нужные слоты. Мы назначим кости, перетаскивая значения из Robot на нужные слоты. Раскройте объект Robot в Hierarchy.- Сначала, rootHandle назначаем на root.
- Установите Total Mass на 4.
LEGS- upleg_L на Left Hip.
- lowleg_L на Left Knee.
- heel_L на Left Foot.
- Повторите для правой ноги.
Upper body / Arms- upArm_L на Left Arm.
- elbow_L на Left Elbow.
- Повторите для правой руки.
- spine 3 на Middle spine.
- head на Head.
- Нажмите Create. Затем запустите игру. Робот упадёт. Однако, пушка не упадёт.
Для создания падения пушки:- Выберите gun в Hierarchy.
- Добавьте Rigidbody.
- Добавьте Box Collider. Настройте размер коллайдера для
соответствия с пушкой.
|
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
28.07.2010, 23:52
|
#96
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Фак по Юнити.
Спасибо, но мне нужно для своей модели, прсто перевод понятный нужен
|
(Offline)
|
|
29.07.2010, 00:00
|
#97
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Ну по примеру:
- root - обычно тазовая кость у скелета, т.е. начало координат скелета
- Left Hip - Левое бедро
- Left Knee - Левая голень
- Left Foot - Левая стопа
- Left Arm - Левая верхняя часть руки
- Left Elbow - Левое предплечие
- Middle spine - Средняя кость спины
- Head - Голова
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
29.07.2010, 00:07
|
#98
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Фак по Юнити.
Спасибо, то что надо!
|
(Offline)
|
|
30.07.2010, 00:34
|
#99
|
Разработчик
Регистрация: 28.12.2008
Адрес: Алматы
Сообщений: 486
Написано 252 полезных сообщений (для 1,160 пользователей)
|
Ответ: Фак по Юнити.
Pax не мог бы ты обьяснить как избавиться от лагов в сети, и немного про анимацию опять таки для сетевого режима.
|
(Offline)
|
|
30.07.2010, 04:01
|
#100
|
Разработчик
Регистрация: 06.08.2007
Сообщений: 473
Написано 131 полезных сообщений (для 257 пользователей)
|
Ответ: Фак по Юнити.
для вызова компонента из ГО используется GetComponent(). А можно ли получить ГО если известен компонент?
И если не затруднит расскажите плиз о работе с тегами обьектов. что это и как это естса.
|
(Offline)
|
|
30.07.2010, 13:00
|
#101
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Сообщение от Fatalix3d
Pax не мог бы ты обьяснить как избавиться от лагов в сети, и немного про анимацию опять таки для сетевого режима.
|
Для избавления от лагов нужно использовать интерполяцию с задержкой по времени, пример из Networking Example с оффсайта (NetworkInterpolatedTransform):
using UnityEngine; using System.Collections; public class NetworkInterpolatedTransform : MonoBehaviour { // временная задержка для интерполяции public double interpolationBackTime = 0.1; internal struct State { internal double timestamp; internal Vector3 pos; internal Quaternion rot; } // Сохраняем 20 состояний с информацией "для воспроизведения" State[] m_BufferedState = new State[20]; // сколько состояний используется int m_TimestampCount; void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info) { // Всегда отсылаем трансформ if (stream.isWriting) { Vector3 pos = transform.localPosition; Quaternion rot = transform.localRotation; stream.Serialize(ref pos); stream.Serialize(ref rot); } // Когда принимаем - буфферизируем информацию else { // Принимаем последнее состояние Vector3 pos = Vector3.zero; Quaternion rot = Quaternion.identity; stream.Serialize(ref pos); stream.Serialize(ref rot); // Смещаем данные в буфере на 1 for (int i=m_BufferedState.Length-1;i>=1;i--) { m_BufferedState[i] = m_BufferedState[i-1]; } // сохраняем полученные данные под нулевым индексом State state; state.timestamp = info.timestamp; state.pos = pos; state.rot = rot; m_BufferedState[0] = state; // увеличиваем количество сохраненных состояний, но не больше количества слотов m_TimestampCount = Mathf.Min(m_TimestampCount + 1, m_BufferedState.Length); // проверяем целостность данных for (int i=0;i<m_TimestampCount-1;i++) { if (m_BufferedState[i].timestamp < m_BufferedState[i+1].timestamp) Debug.Log("State inconsistent"); } //Debug.Log("stamp: " + info.timestamp + "my time: " + Network.time + "delta: " + (Network.time - info.timestamp)); } } // Работает только когда компонент включен, т.е. на удаленных соединениях (server/clients) void Update () { double currentTime = Network.time; double interpolationTime = currentTime - interpolationBackTime; // Ищем промежуток, подходящий по отложенному времени if (m_BufferedState[0].timestamp > interpolationTime) { for (int i=0;i<m_TimestampCount;i++) { if (m_BufferedState[i].timestamp <= interpolationTime || i == m_TimestampCount-1) { // два состояния, в промежуток которых попадает времяя State rhs = m_BufferedState[Mathf.Max(i-1, 0)]; State lhs = m_BufferedState[i]; // промежуток времени между состояниями double length = rhs.timestamp - lhs.timestamp; float t = 0.0F; // интерполирующая переменная if (length > 0.0001) t = (float)((interpolationTime - lhs.timestamp) / length); // интерполируем трансформации transform.localPosition = Vector3.Lerp(lhs.pos, rhs.pos, t); transform.localRotation = Quaternion.Slerp(lhs.rot, rhs.rot, t); return; } } } // для экстраполяции используем последнее полученное значение else { State latest = m_BufferedState[0]; transform.localPosition = latest.pos; transform.localRotation = latest.rot; } } }
Для синхронизации анимаций там же найдете пример Networking Scripts\NetworkSyncAnimation
Сообщение от Illidan
для вызова компонента из ГО используется GetComponent(). А можно ли получить ГО если известен компонент?
И если не затруднит расскажите плиз о работе с тегами обьектов. что это и как это естса.
|
У всех компонентов есть свойство gameObject, которое указывает на объект, к которому прикреплен компонент.
Тэги помогают разделить объекты при поиске. Особенно, если им не назначен компонент, по которому можно определить тип объекте в сцене. Например хочется указать места, в которых время от времени будут появляться бонусы. Мы создаем тэг с названием "Bonus" и создаем пустые GameObject'ы и назначаем им этот тэг. Далее какой-то скрипт управляющий появлением бонусов находит все эти объекты с помощью функции GameObject.FindGameObjectsWithTag и создает в этих местах эти бонусы.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
30.07.2010, 19:39
|
#102
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Фак по Юнити.
У меня два похожих вопроса, которые скорей всего решаются функцией GetComponent() но я точно не пойму как:
1) У ГО имеится 3д источник звука (Audio Source ) как в скрипет тогоже ГО написать, чтобы когда надо он включался, а когда, надо выключался?
2) Тоже самое, но только у ГО имеется например 4 скрипта - "Самолёт","Машина","Лодка","Главный" . "Главный" всегда включен, как в нём прописать чтобы какой либо из этих скриптов включался/выключался ?
|
(Offline)
|
|
30.07.2010, 20:00
|
#103
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
1) this.audio.enabled = false;
2) this.GetComponent<Самолёт>().enabled = false; или this.gameObject.GetComponent<Самолёт>().enabled = false;
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
30.07.2010, 21:48
|
#104
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Фак по Юнити.
хех, спасибо! сколько раз уже выручал!
------
this.audio.enabled = false;
|
А если у ГО несколько источников?
То так чтоли -
this.GetComponent<3дМузончик№1>().enabled = false;
this.GetComponent<3дМузончик№2>().enabled = false;
this.GetComponent<3дМузончик№3>().enabled = false;
???
--------
И сюда же: как выключить/включить гравитацию о ГО?
|
(Offline)
|
|
30.07.2010, 22:02
|
#105
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Тогда вот так:
AudioSource[] музончики = (AudioSource[]) GetComponents(typeof (AudioSource)); foreach (AudioSource музон in музончики) { музон.enabled = false; }
А по поводу графитации, то она включается/отключается у твердого тела, а не у GO:
this.rigidbody.useGravity = false;
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:53.
|