|
Unity Мультиплатформенный инструмент для разработки игр |
19.06.2011, 15:30
|
#406
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
@Lestar На сколько я понимаю - изменить время инстансирования надо всего два раза - через 1 секунду после старта и через 30.
Код:
if(time>=1) { x = Random.Range(5, 21); } if(time>=30) { x = Random.Range(1, 6); }
Вызывает смену времени, записанное в переменную столько раз, сколько кадров пройдет с первой секунды
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
19.06.2011, 15:40
|
#407
|
Бывалый
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений (для 880 пользователей)
|
Ответ: Фак по Юнити.
Немного изменил для красоты код.
@Pax,а я так понял,что до 30 секунд рандом между инстансами один,после 30 секунд рандом между инстансами другой.Пускай SaM_ пояснит тогда.
|
(Offline)
|
|
19.06.2011, 16:20
|
#408
|
ПроЭктировщик
Регистрация: 15.06.2011
Сообщений: 111
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Фак по Юнити.
Lestar, в моем случае переменная "x" обозначает промежуток времени между спавном. Не важно что спавнится - но чем этого больше, тем сложней играть. То есть промежуток между спавнами может быть от 5 до 20. Через 30 секунд уровень сложности повышается и промежуток может быть от 1 до 5. Как-то так.
Кстати, огромное спасибо за помощь. На других форумах обычно молчат или кричат, что вопросы глупые.
|
(Offline)
|
|
19.06.2011, 16:24
|
#409
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Тогда я бы предложил такой вариант:
var apple : Rigidbody; var time : float; var x : float = 1; //Начальное значение переменной "x", как я понял?
Invoke("LaunchProjectile", x);
function LaunchProjectile () { instance = Instantiate(apple,transform.position, transform.rotation); instance.velocity = transform.TransformDirection( Vector3( 0, 0, 0 ) ); if(Time.timeSinceLevelLoad <30) Invoke("LaunchProjectile", Random.Range(5, 21)); else Invoke("LaunchProjectile", Random.Range(1, 6)); }
|
(Offline)
|
|
19.06.2011, 16:26
|
#410
|
Бывалый
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений (для 880 пользователей)
|
Ответ: Фак по Юнити.
Что такое x я вижу.Вопрос в том,она рандомно генедиться до и после 30-ти секунд по одному разу или нет.То есть следующий инстанс будет через тот же промежуток времени или генерим х снова.
|
(Offline)
|
|
19.06.2011, 16:26
|
#411
|
ПроЭктировщик
Регистрация: 15.06.2011
Сообщений: 111
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Фак по Юнити.
pax, твой последний способ не очень подойдет, ибо:
var apple : Rigidbody; var time : float; var next_Instans : float = 0; var x : float = 1; function Update () { time=Time.timeSinceLevelLoad; if(time>=1) { x = Random.Range(0.01, 41); } if(time>=30) { x = Random.Range(0.01, 31); } if(time>=60) { x = Random.Range(0.01, 21); } if(time>=180) { x = Random.Range(0.01, 16); } if(time>=300) { x = Random.Range(0.01, 11); } if(time>=420) { x = Random.Range(0.01, 6); } if(time>=480) { x = Random.Range(0.01, 3); } if(time>=next_Instans) { LaunchProjectile (); next_Instans+=x; } } function LaunchProjectile () { instance = Instantiate(apple,transform.position, transform.rotation); instance.velocity = transform.TransformDirection( Vector3( 0, 0, 0 ) ); }
|
(Offline)
|
|
19.06.2011, 16:29
|
#412
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Вот этот код вообще беда, условия такие, что чем больше уровень сложности, тем больше раз сработает рандом.
|
(Offline)
|
|
19.06.2011, 16:31
|
#413
|
ПроЭктировщик
Регистрация: 15.06.2011
Сообщений: 111
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Фак по Юнити.
И что в итоге выйдет? Как это будет выглядеть в игре? Что-то не пойму. Уже потестил - вроде нормально.
|
(Offline)
|
|
19.06.2011, 16:32
|
#414
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
На самой сложной игре будет выполнено каждое условие, результат конечно получишь верный
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
19.06.2011, 16:37
|
#415
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Вот еще пример:
var apple : Rigidbody; var time : float; var x : float = 1; //Начальное значение переменной "x", как я понял?
Invoke("LaunchProjectile", x);
function LaunchProjectile () { instance = Instantiate(apple,transform.position, transform.rotation); instance.velocity = transform.TransformDirection( Vector3( 0, 0, 0 ) );
time=Time.timeSinceLevelLoad;
if(time>=480) { Invoke("LaunchProjectile", Random.Range(0.01, 3)); } else if (time>=420) { Invoke("LaunchProjectile", Random.Range(0.01, 6)); } else if (time>=300) { Invoke("LaunchProjectile", Random.Range(0.01, 11)); } else if (time>=180) { Invoke("LaunchProjectile", Random.Range(0.01, 16)); } else if (time>=60) { Invoke("LaunchProjectile", Random.Range(0.01, 21)); } else if (time>=30) { Invoke("LaunchProjectile", Random.Range(0.01, 31)); } else { Invoke("LaunchProjectile", Random.Range(0.01, 41)); } }
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
19.06.2011, 20:26
|
#416
|
ПроЭктировщик
Регистрация: 15.06.2011
Сообщений: 111
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Фак по Юнити.
В бесплатной версии Unity возможно как-то реализовать динамическую тень? Может скрипт есть какой нибудь?
|
(Offline)
|
|
19.06.2011, 20:34
|
#417
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Нет, только фейковую.
|
(Offline)
|
|
19.06.2011, 22:12
|
#418
|
Бывалый
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений (для 880 пользователей)
|
Ответ: Фак по Юнити.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.06.2011, 16:41
|
#419
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Фак по Юнити.
Сообщение от SaM_
Lestar, я js только вчера начал учить, мне многое еще рано
И все же не могу я разобраться:
var apple : Rigidbody; var time : float; var x : float = 1; //Начальное значение переменной "x", как я понял? function Update () { time=Time.timeSinceLevelLoad; if(time>=1) { x = Random.Range(5, 21); } if(time>=30) { x = Random.Range(1, 6); } } InvokeRepeating("LaunchProjectile", 2, (x)); //"x" - та самая переменная, обозначающая промежуток между спавнами function LaunchProjectile () { instance = Instantiate(apple,transform.position, transform.rotation); instance.velocity = transform.TransformDirection( Vector3( 0, 0, 0 ) ); }
Вот мой скрипт спавна. Что не так? Ибо изменение колва спавнющихся объектов со временем не меняется, хотя игра запускается.
|
Если ты его только начал изучать, то мне кажется, что до программирования игр, а тем более на Unity3D еще далеко... Подучи синтаксис языка, научись работать с классами, объектами, полями и т. д. Только потом садись за Unity3D, и только тогда не будешь задавать глупых вопросов... В Unity3D очень хорошая справка, достаточно только уметь обращаться с ООП и Unity для тебя станет раем Дерзай
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.06.2011, 20:13
|
#420
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Фак по Юнити.
var mycamera:GameObject;
var Distance=10;
function Update () {
mycamera.transform.position.y = transform.position.y + Mathf.Sin(mycamera.transform.rotation.x)* Distance;
mycamera.transform.position.z = transform.position.z + Mathf.Cos(mycamera.transform.rotation.x)* -Distance;
}
|
По сути работает правильно. ТО ест ькамера движется как нода и дистанция соблюдается, но какого то хера время от времени меняется знак О_О
То есть например сначало при 30 градусах камера идёт вверх, а потом при 30 идет вниз. Короче загрузите, посмотрите
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:29.
|