forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Unity (http://forum.boolean.name/forumdisplay.php?f=144)
-   -   Фак по Юнити. (http://forum.boolean.name/showthread.php?t=12966)

den 30.07.2010 22:05

Ответ: Фак по Юнити.
 
А на счёт гравитации сам понял:
Код:

Rigidbody.useGravity = false;
Rigidbody.useGravity = true;


den 31.07.2010 13:15

Ответ: Фак по Юнити.
 
Как сделать глобальные переменные, штоб их было видно из любого скрипта либого ГО ??

pax 31.07.2010 15:42

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от Den (Сообщение 156834)
Как сделать глобальные переменные, штоб их было видно из любого скрипта либого ГО ??

PHP код:

public class GlobalVars
{
     
// глобальная переменная )
     
public static float globalFloat 123.456f;


обращение так:

PHP код:

public class Script:MonoBehaviour
{
     public 
void Start()
     {
         
GlobalVars.globalFloat 234.567f;
     }



den 31.07.2010 15:53

Ответ: Фак по Юнити.
 
PHP код:

private var :boolean =true;
function 
Update () {
if(
Input.GetAxis("Perekl") && n==falsen=true;
if(
Input.GetAxis("Perekl") && n==truen=false;
if(
n==true)
{
    
this.GetComponent(Car).enabled true;
    
this.GetComponent(Vertolet).enabled false;
}
if(
n==false)
{
    
this.GetComponent(Car).enabled false;
    
this.GetComponent(Vertolet).enabled true;
}
print(
n);


Почему тупит?
При нажатии на E (Perekl) переменная становится false, а при следующих нажатиях не меняется...:(

pax 31.07.2010 22:40

Ответ: Фак по Юнити.
 
JavaScript... ну ка почему такой вопрос в разделе по C#?
Во первых для кнопок с такой проверкой я бы использовал Input.GetAxisRaw а не Input.GetAxis, т.к. последняя возвращает сглаженное значение.
И писал бы не так...
PHP код:

private var :boolean =true
var 
lastInputfloat 0;
function 
Update () { 
var 
input Input.GetAxisRaw("Perekl");

// когда у нас происходит нажатие в положительную сторону оси
// нам надо поймать это нажатие.
if(lastInput input n=!n
lastInput input;

if(
n

    
this.GetComponent(Car).enabled true
    
this.GetComponent(Vertolet).enabled false

else

    
this.GetComponent(Car).enabled false
    
this.GetComponent(Vertolet).enabled true

print(
n); 


Либо я бы вообще использовал Input.GetKeyDown() для ловли нажатия кнопки.

UPD: И вообще обновлять в каждом кадре состояния компонентов это изврат. Сделай хотя бы так:
PHP код:

private var :boolean =true
var 
lastInputfloat 0;
function 
Update () { 
var 
input Input.GetAxisRaw("Perekl");

// когда у нас происходит нажатие в положительную сторону оси
// нам надо поймать это нажатие.
if(lastInput input 
{
    
n=!n;
    
this.GetComponent(Car).enabled n
    
this.GetComponent(Vertolet).enabled = !n

lastInput input;
print(
n); 


UPD2: кстати что это за машина-вертолет?

den 31.07.2010 23:18

Ответ: Фак по Юнити.
 
Цитата:

JavaScript... ну ка почему такой вопрос в разделе по C#?
А кстате о переводах, как это будет на JS, а то я C# вобще не шарю...

pax 31.07.2010 23:20

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от Den (Сообщение 156886)
А кстате о переводах, как это будет на JS, а то я C# вобще не шарю...

Аналогично я не шарю в JS ;)
Но на сколько я понимаю так же должно использоваться ключевое слово static при объявлении переменной.

Вот похоже пример

den 31.07.2010 23:31

Ответ: Фак по Юнити.
 
Цитата:

UPD2: кстати что это за машина-вертолет?
Да я онлай игрушку забабахать хочю!
Там Машина стреляет ракетами, ездиет как машина, при нажатие на Е-у неё появляются лопости, и управление меняется на вертолётное.

pax 31.07.2010 23:33

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от Den (Сообщение 156888)
Да я онлай игрушку забабахать хочю!
Там Машина стреляет ракетами, ездиет как машина, при нажатие на Е-у неё появляются лопости, и управление меняется на вертолётное.

Жуть какая :4to:

den 01.08.2010 22:22

Ответ: Фак по Юнити.
 
Я насчёт сетей.
Вот делаю сетевую игру.
Запускаю сразу 2 окна - буду проверять две машинки - все нормально работает, едёт. При нажатии на Е машинка превращается в вертолёт (лопости появляются) и управление становится вертолётное. С упровление всё норм. Но вот лопости появлюутся у всех машин, на том экране где есть летающая машинка, на другом экране-их вобще нету:-D
В чём дело? (лопости-это часть машины префаба-простов нужный момент они становятся видимыми/невидимыми)

pax 01.08.2010 22:41

Ответ: Фак по Юнити.
 
Нужно писать RPC функцию, которой передавать наверное до кучи NetworkViewId. Эта функция должна включать отображение лопостей. В ней надо сначала сделать проверку на NetworkViewId и если он совпадает, то скрыть/отобразить лопости.
При нажатии на кнопку E вызывать эту функцию для всех игроков.

den 01.08.2010 22:51

Ответ: Фак по Юнити.
 
Цитата:

Нужно писать RPC функцию, которой передавать наверное до кучи NetworkViewId. Эта функция должна включать отображение лопостей. В ней надо сначала сделать проверку на NetworkViewId и если он совпадает, то скрыть/отобразить лопости.
При нажатии на кнопку E вызывать эту функцию для всех игроков.
можно чюточку поподробней
------------------------------
А что надо для онлайн ракеты? только Network View ? или тоже функцию писать надо...
Блин, с ракетами такаяже трабла...
Что делать:''((

pax 02.08.2010 01:20

Ответ: Фак по Юнити.
 
Подробнее сам еще не касался этой темы. Какой выбран принцип работы сети? Сервер рулит или нет? Или какой-то частью сервер распоряжается? Чтобы разобраться - надо разобрать подробно два примера работы сети, тот который я описал и тот в котором рулит сервер. Кто-то хотел рассказать как этот пример работает ;)

Думаю ракета должна управляться только сервером и с него рассылать причиненные повреждения. Чтобы ракета управлялась сервером, нужно создать RPC функцию, которая вызывается только на сервере. Т.е. вызывать ее с параметром Server или если текущим пользователем является сервер, то вызывать функцию создания ракеты напрямую.

Кто будет управлять ракетой - зависит от того у кого будет вызвана функция Network.Instantiate().

den 02.08.2010 01:25

Ответ: Фак по Юнити.
 
Цитата:

Кто будет управлять ракетой - зависит от того у кого будет вызвана функция Network.Instantiate().
так я вызываю эту функцию, а рокета у всех игроков появляется одновреммено. Я даже не пойму как сделать чтоб нормально работало.

pax 02.08.2010 09:43

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от Den (Сообщение 156987)
так я вызываю эту функцию, а рокета у всех игроков появляется одновреммено. Я даже не пойму как сделать чтоб нормально работало.

Ну тут без кода не разберешь, вызвать функцию пол беды, важно где вызывается функция.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot