2016-10-01 12 views
0

///質問:それはバグだらけ変更文字カメラながら、ゲーム内

されることなく、他のプレイヤーにカメラを変更する方法だから私は0から1に変数selecterCharを変更しているコードの部分を持っていますかユーザーが 'E'を押すたびに逆戻りし、うまく動作します。これは私が今、このスクリプトの他の部分がカメラのために使用され、このコード

private void ChangeCharacter() 
{ 
    GameObject thePlayer = GameObject.Find("Walk (1)"); 
    PlayerMovement playerMovemnt = thePlayer.GetComponent<PlayerMovement>(); 
    int selectedCharacter = playerMovemnt.selectedChar; 
    selCharacter = selectedCharacter; 
} 

と、このいずれかにアクセスする別のスクリプトです。私はこの

private void Start() 
{ 

    offset = transform.position - player.transform.position; 
    offset = transform.position - player2.transform.position; 
} 

private void LateUpdate() 
{ 

    if (selCharacter == 0) 
    { 
     transform.position = player.transform.position + offset; 
    } 
    else 
    { 
     transform.position = player2.transform.position + offset; 
    } 
} 

でカメラを変更したい(このスクリプトの先頭で宣言された)selCharacterが0であれば、カメラがプレイヤーに移動し、それが1であれば、それはplayer2に行きます。だから、ChangeCharacterメソッドは、ゲームが始まるときに1回だけ使用されますが、コードをChangeCharacter()からlateUpdate()に移動すると機能しますが、停止する前に複数回カメラを変更しています。私はLateUpdate()からそれを呼び出すのは最初のプレイヤーだけです。

+0

この行内 'offset = transform.position - player.transform.position; offset = transform.position - player2.transform.position; 'あなたはオフセットを上書きしていますか? – cjf93

+0

他のスクリプトのGetKeyをDownに追加して修正しました。さらに、lateUpdateスクリプトにChangeCharacter()コードを追加してjsutしました。今、それは働いており、オフセットのためにいくつかのテストから残されています。私はそれを削除することを忘れてしまった。 –

答えて

0

はInput.GetKeyDown(KeyCode.E)にInput.GetKey(KeyCode.E)に変更し、その後、私は他のものを必要としなかったし、それが働いたとして、Updateメソッドにこの

GameObject thePlayer = GameObject.Find("Walk (1)"); 
    PlayerMovement playerMovemnt = thePlayer.GetComponent<PlayerMovement>(); 
    int selectedCharacter = playerMovemnt.selectedChar; 
    selCharacter = selectedCharacter; 

を追加しました。

PS:明日の回答で確認します。

関連する問題