2016-06-28 4 views
-1

私の友人と私は2Dシューティングゲームを作成しましたが、今はマルチプレイヤー機能を実装していますが、プレーヤーのモデルが向きを変えると難しいですマウスポインタの)。クライアントへオブジェクトのスケールをクライアントからクライアントに合わせる

  1. サーバー:サーバーへの正常な
  2. クライアントワークス:クライアントに通常の
  3. クライアントワークス:選手たちは1人のサーバプレーヤーと2人のクライアントのプレイヤーとゲームをテストしようとすると問題があります常に正しい

    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を使用してクライアントとクライアントの同期を修正する必要がありました。

関連する問題