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

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

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

Ответ
 
Опции темы
Старый 01.01.2013, 17:32   #1
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Проблема с фонарем

Почему, когда я создал сетку и все прекрасно работает, игрок выключает фонарик, его не видит, а я вижу его фонарь?
Вот сам скрипт:
#pragma strict

var spotlight:Light;
var activelight = true;

function Update()
{
	if(networkView.isMine)
	{
		if(activelight==true)
		spotlight.enabled = true;
		else
		{
			if(activelight==false)
				spotlight.enabled = false;
		}
		
		if(Input.GetKeyDown(KeyCode.F) && activelight==true)
		{
			activelight = false;
		}
		else
		{
			if(Input.GetKeyDown(KeyCode.F) && activelight==false)
			{
				activelight = true;
			}
		}
	}
}
(Offline)
 
Ответить с цитированием
Старый 01.01.2013, 17:34   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблема с фонарем

Потому что всем игрокам по сети надо отправить сообщение (RPC) о выключении фонаря
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Andvrok (03.01.2013), LLI.T.A.L.K.E.R. (21.06.2014)
Старый 01.01.2013, 18:07   #3
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Проблема с фонарем

Сообщение от pax Посмотреть сообщение
Потому что всем игрокам по сети надо отправить сообщение (RPC) о выключении фонаря
Поскажи как, а то что-то не пойму.
(Offline)
 
Ответить с цитированием
Старый 01.01.2013, 18:18   #4
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Проблема с фонарем

У меня было так. Есть игрок и есть "фэйки", которыми управляют сетевые данные, которой мы получаем. Между таким игроком и фэйком есть общий скрипт. В этом скрипте есть функция включить фонарь, которая при наличии сети запускает RPC функцию. В этом же скрипте есть ответ на эту ф-ю, которая уже и включает фонарь.
Скорее всего ты ничего не понял
(Offline)
 
Ответить с цитированием
Старый 01.01.2013, 18:38   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблема с фонарем

Сообщение от mepihin Посмотреть сообщение
Поскажи как, а то что-то не пойму.
Пример отправки всем сообщения тут: http://docs.unity3d.com/Documentatio...PCDetails.html
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 01.01.2013, 18:57   #6
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Проблема с фонарем

чет я ничего не понял.
это получается, что я должен вот так код изменить?
#pragma strict

var spotlight:Light;
var activelight = true;

function Update()
{
	if(networkView.isMine)
	{
		if(activelight==true)
{
		spotlight.enabled = true;
networkView.RPC("spotlight.enabled",RPCMode.All,spotlight.enabled=true)
}
		else
		{
			if(activelight==false)
				spotlight.enabled = false;
		}
		
		if(Input.GetKeyDown(KeyCode.F) && activelight==true)
		{
			activelight = false;
		}
		else
		{
			if(Input.GetKeyDown(KeyCode.F) && activelight==false)
			{
				activelight = true;
			}
		}
	}
}
Я вообще справку эту не понял.
(Offline)
 
Ответить с цитированием
Старый 01.01.2013, 19:06   #7
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблема с фонарем

я на js не программирую
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 01.01.2013, 19:58   #8
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Проблема с фонарем

ну напиши на C# я перепешу
Я то и то знаю
(Offline)
 
Ответить с цитированием
Старый 01.01.2013, 23:03   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблема с фонарем

[RPC]
void SetSpotlight(int state)
{
     
spotlight.enabled state == 1;

использовать так:
networkView.RPC("SetSpotlight",RPCMode.All,spotlight.enabled?1:0); 
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 01.01.2013, 23:17   #10
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Проблема с фонарем

то есть конечный код будет вот такой?
#pragma strict

var spotlight:Light;
var 
activelight:int 1;

function 
Update()
{
    if(
networkView.isMine)
    {
        if(
activelight==true)
        
networkView.RPC("SetSpotlight",RPCMode.All,spotlight.enabled?1:0);
        else
        {
            if(
activelight==false)
                
networkView.RPC("SetSpotlight",RPCMode.All,spotlight.enabled?1:0);
        }
        
        if(
Input.GetKeyDown(KeyCode.F) && activelight==true)
        {
            
GameObject.FindGameObjectWithTag("light").animation.CrossFade("off");
            
activelight 0;
        }
        else
        {
            if(
Input.GetKeyDown(KeyCode.F) && activelight==false)
            {
                
GameObject.FindGameObjectWithTag("light").animation.CrossFade("on");
                
activelight 1;
            }
        }
    }
}
@
RPC
function SetSpotlight(state:int)
{
     
spotlight.enabled state == 1;

но вот что-то фонарик не выключается и не включается. Я что-то не так сделал это точно... Подскажите что.
(Offline)
 
Ответить с цитированием
Старый 01.01.2013, 23:19   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблема с фонарем

Убил сеть посылая каждый кадр RPC) Посылай только когда меняется состояние.

Эх
function Update()
{
    if(
networkView.isMine)
    {
      
        if(
Input.GetKeyDown(KeyCode.F) && activelight==true)
        {
            
GameObject.FindGameObjectWithTag("light").animation.CrossFade("off");
            
networkView.RPC("SetSpotlight",RPCMode.All0);
        }
        else  if(
Input.GetKeyDown(KeyCode.F) && activelight==false)
        {
            
GameObject.FindGameObjectWithTag("light").animation.CrossFade("on");
            
networkView.RPC("SetSpotlight",RPCMode.All1);
        }
    }
}

@
RPC
function SetSpotlight(state:int)
{
     
activelight state;
     
spotlight.enabled state == 1;

__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (21.06.2014)
Старый 02.01.2013, 00:06   #12
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Проблема с фонарем

спс, вот фулл скрипт:
#pragma strict

var spotlight:Light;
var 
activelight:int 1;

function 
Update()
{
    if(
networkView.isMine)
    {
      
        if(
Input.GetKeyDown(KeyCode.F) && activelight==1)
        {
            
GameObject.FindGameObjectWithTag("light").animation.CrossFade("off");
            
networkView.RPC("SetSpotlight",RPCMode.All0);
        }
        else  if(
Input.GetKeyDown(KeyCode.F) && activelight==0)
        {
            
GameObject.FindGameObjectWithTag("light").animation.CrossFade("on");
            
networkView.RPC("SetSpotlight",RPCMode.All1);
        }
    }
}
@
RPC
function SetSpotlight(state:int)
{
     
activelight state;
     
spotlight.enabled state == 1;

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (21.06.2014)
Ответ


Опции темы

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

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


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


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