Пытаюсь реализовать посадку в авто, по сети, пока что безрезультатно...
Кусок основного кода JS без var'ов:
Код
function OnTriggerEnter (other : Collider) {
if (other.gameObject.networkView.isMine){
if (other.gameObject.tag == "Player" ){
OnTrigger=true;
ObjectOnTrigger=other.gameObject;
}
}
function OnTriggerExit (other : Collider) {
OnTrigger=false;
}
function LateUpdate () {
if (!networkView.isMine) return;
if(Input.GetKeyDown(KeyCode.Return)) { // тут я типа могу садиться в авто, на клавишу Enter
if(PlayerInCar==true){
PlayerInCar=false;
PlayerExitFromCar(ObjectOnTrigger);
}
else if(PlayerInCar==false && (OnTrigger==true)){
PlayerInCar=true;
PlayerEnterInCar(ObjectOnTrigger);
}
}
}
function PlayerEnterInCar(pl_object : GameObject){
if(networkView.isMine){
if(pl_object!=null) networkView.RPC("EnterPlayerInCar",RPCMode.Others, pl_object.viewID);
}
//pl_object прикрепляется к тачке
//функция входа в тачку
}
function PlayerExitFromCar(pl_object : GameObject){
if(networkView.isMine){
if(pl_object!=null) networkView.RPC("ExitPlayerInCar",RPCMode.Others, pl_object.viewID);
}
//pl_object прикрепляется к тачке
//функция выхода из авто
}
// передача моих действий другим игрокам
@RPC
function EnterPlayerInCar (PlayerModel :NetworkViewID) {
var Nplayer = NetworkView.Find(PlayerModel);
PlayerEnterInCar(Nplayer.observed.gameObject.gameObject); //Тут типа другие видят как я сел в тачку
}
@RPC
function ExitPlayerInCar (PlayerModel :NetworkViewID) {
var Nplayer = NetworkView.Find(PlayerModel);
PlayerExitFromCar(Nplayer.observed.gameObject.gameObject); //Типа другие видят как я вышел из тачки..
}
//в этом сулчае вообче ничего не передает:(
Ошибка:
Цитата
Sending RPC failed because 'ExitPlayerInCar' parameter 0 was null
UnityEngine.NetworkView:RPC(String, RPCMode, Object[])
еще я пытался так:
Код
function PlayerEnterInCar(pl_object : GameObject){
if(networkView.isMine){
if(pl_object!=null) networkView.RPC("EnterPlayerInCar",RPCMode.Others, pl_object.name);
}
//pl_object прикрепляется к тачке
//функция входа в тачку
}
function PlayerExitFromCar(pl_object : GameObject){
if(networkView.isMine){
if(pl_object!=null) networkView.RPC("ExitPlayerInCar",RPCMode.Others, pl_object.name);
}
//pl_object открепляется
//функция выхода из авто
}
// передача моих действий другим игрокам
@RPC // передача моих действий другим игрокам
function EnterPlayerInCar (PlayerModel : String) {
var Nplayer = GameObject.Find(PlayerModel);
PlayerEnterInCar(Nplayer.observed.gameObject.gameObject); //Тут типа другие видят как я сел в тачку
}
@RPC
function ExitPlayerInCar (PlayerModel : String) {
var Nplayer = GameObject.Find(PlayerModel);
PlayerExitFromCar(Nplayer.observed.gameObject.gameObject); //Типа другие видят как я вышел из тачки
}
тут, впрочем, таже ошибка..
Если шарите в RPC то смело спрашивайте что непонятно в коде, и говорите о увиденных вами ошибках !