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

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

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

Unity Мультиплатформенный инструмент для разработки игр

Ответ
 
Опции темы
Старый 28.07.2010, 14:14   #91
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Фак по Юнити.

Меняй Field of view камеры, если я правильно понял о чем ты.
Нее, это не то, это вобще по мойму угол обзора!
А мне надо приближение сделать, ну например кагбутто через биноколь смотриш.
(Offline)
 
Ответить с цитированием
Старый 28.07.2010, 14:19   #92
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Ну уменьши угол обзора до 15-10 единиц, будет тебе зум
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
den (28.07.2010)
Старый 28.07.2010, 14:29   #93
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Фак по Юнити.

Ну уменьши угол обзора до 15-10 единиц, будет тебе зум
а я наоборот увеличивал, иизображение кривое делалось...
спасибо!
(Offline)
 
Ответить с цитированием
Старый 28.07.2010, 23:06   #94
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Фак по Юнити.

Есчё один немного глупый вопрос :
т.к. я плохо знаю буржуйский, а промт переводит не понятно, то спрошу вас:
в Юнити есть рагдол виззарт (ГамеОбъект-КреатеОвер-Рагдол), и там появляется список частей тела, можете мне расказать что это за части по русски, а то сделал рагдола, а он ...
(Offline)
 
Ответить с цитированием
Старый 28.07.2010, 23:31   #95
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 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. Настройте размер коллайдера для
соответствия с пушкой.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
den (28.07.2010), Fatalix3d (30.07.2010)
Старый 28.07.2010, 23:52   #96
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Фак по Юнити.

Спасибо, но мне нужно для своей модели, прсто перевод понятный нужен
(Offline)
 
Ответить с цитированием
Старый 29.07.2010, 00:00   #97
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Ну по примеру:
  • root - обычно тазовая кость у скелета, т.е. начало координат скелета
  • Left Hip - Левое бедро
  • Left Knee - Левая голень
  • Left Foot - Левая стопа
  • Left Arm - Левая верхняя часть руки
  • Left Elbow - Левое предплечие
  • Middle spine - Средняя кость спины
  • Head - Голова
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
den (29.07.2010), Fatalix3d (30.07.2010)
Старый 29.07.2010, 00:07   #98
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Фак по Юнити.

Спасибо, то что надо!
(Offline)
 
Ответить с цитированием
Старый 30.07.2010, 00:34   #99
Fatalix3d
Разработчик
 
Аватар для Fatalix3d
 
Регистрация: 28.12.2008
Адрес: Алматы
Сообщений: 486
Написано 252 полезных сообщений
(для 1,160 пользователей)
Ответ: Фак по Юнити.

Pax не мог бы ты обьяснить как избавиться от лагов в сети, и немного про анимацию опять таки для сетевого режима.
(Offline)
 
Ответить с цитированием
Старый 30.07.2010, 04:01   #100
Illidan
Разработчик
 
Регистрация: 06.08.2007
Сообщений: 473
Написано 131 полезных сообщений
(для 257 пользователей)
Ответ: Фак по Юнити.

для вызова компонента из ГО используется GetComponent(). А можно ли получить ГО если известен компонент?
И если не затруднит расскажите плиз о работе с тегами обьектов. что это и как это естса.
(Offline)
 
Ответить с цитированием
Старый 30.07.2010, 13:00   #101
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 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 streamNetworkMessageInfo 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 1m_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 || == m_TimestampCount-1)
                {
                    
// два состояния, в промежуток которых попадает времяя
                    
State rhs m_BufferedState[Mathf.Max(i-10)];
                    
                    
State lhs m_BufferedState[i];
                    
                    
// промежуток времени между состояниями
                    
double length rhs.timestamp lhs.timestamp;
                    
float t 0.0F;
                    
// интерполирующая переменная
                    
if (length 0.0001)
                        
= (float)((interpolationTime lhs.timestamp) / length);
                    
                    
// интерполируем трансформации
                    
transform.localPosition Vector3.Lerp(lhs.posrhs.post);
                    
transform.localRotation Quaternion.Slerp(lhs.rotrhs.rott);
                    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 и создает в этих местах эти бонусы.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Fatalix3d (30.07.2010), Illidan (31.07.2010)
Старый 30.07.2010, 19:39   #102
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Фак по Юнити.

У меня два похожих вопроса, которые скорей всего решаются функцией GetComponent() но я точно не пойму как:
1) У ГО имеится 3д источник звука (Audio Source ) как в скрипет тогоже ГО написать, чтобы когда надо он включался, а когда, надо выключался?
2) Тоже самое, но только у ГО имеется например 4 скрипта - "Самолёт","Машина","Лодка","Главный" . "Главный" всегда включен, как в нём прописать чтобы какой либо из этих скриптов включался/выключался ?
(Offline)
 
Ответить с цитированием
Старый 30.07.2010, 20:00   #103
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

1) this.audio.enabled = false;
2) this.GetComponent<Самолёт>().enabled = false; или this.gameObject.GetComponent<Самолёт>().enabled = false;
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
den (30.07.2010), Fatalix3d (30.07.2010), Illidan (31.07.2010)
Старый 30.07.2010, 21:48   #104
den
Дэвелопер
 
Аватар для den
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Тогда вот так:
AudioSource[] музончики = (AudioSource[]) GetComponents(typeof (AudioSource));
foreach (
AudioSource музон in музончики)
{
    
музон.enabled false;

А по поводу графитации, то она включается/отключается у твердого тела, а не у GO:
this.rigidbody.useGravity false
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
den (30.07.2010), Fatalix3d (30.07.2010), Illidan (31.07.2010)
Ответ


Опции темы

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

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


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


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