2016-06-28 170 views
-1

我和我的朋友创建了一个2D射击游戏,现在我们正在实现多人游戏功能,但是当玩家模型切换他的朝向方向时(玩家朝向朝向的鼠标指针)。当我们尝试用一个服务器播放器和两个客户端的玩家来测试游戏中有一个问题:从客户端到客户端的同步对象比例

  1. 服务器到客户端工作正常
  2. 客户端到服务器工作正常
  3. 客户端到客户端:玩家总是向右

    using UnityEngine.Networking; 
    
    [SyncVar(hook = "serverTurn")] 
    public bool turnState; 
    
    void Update() 
    { 
        if (!isLocalPlayer) 
        { 
         return; 
        } 
    
        ... 
    
        if (Input.mousePosition.x > (Screen.width/2)) 
        { 
         turnState = true; 
         gameObject.transform.localScale = new Vector3(1, 1, 1); 
    
         Cmd_ChangeDirection(turnState); 
         serverTurn(turnState); 
        } 
    
        else if (Input.mousePosition.x < (Screen.width/2)) 
        { 
         turnState = false; 
         gameObject.transform.localScale = new Vector3(-1, 1, 1); 
    
         Cmd_ChangeDirection(turnState); 
         serverTurn(turnState); 
        } 
    } 
    
    [Command] 
    void Cmd_ChangeDirection(bool var) 
    { 
        if (var) 
        { 
         body2d.transform.localScale = new Vector3(1, 1, 1); 
        } 
        else 
        { 
         body2d.transform.localScale = new Vector3(-1, 1, 1); 
        } 
    } 
    
    void serverTurn(bool state) 
    { 
        if (state) 
        { 
         body2d.transform.localScale = new Vector3(1, 1, 1);   
        } 
        else 
        { 
         body2d.transform.localScale = new Vector3(-1, 1, 1); 
        } 
    } 
    

我们做的是错的,但我们不知道是什么。我们也让玩家所持的枪跟着光标,并且工作正常。旋转同步没有问题,但缩放不会,所以我们想知道如何同步客户端到客户端的对象比例。

+0

你在使用什么样的网络引擎?你认为这是无关紧要的吗? –

+0

我们正在使用UnityEngine.Networking。 – MazzFraps

回答

0

那么我们解决了这个问题。如果它对任何人都有用,我们需要使用RPC将客户端修复为客户端同步。