2016-10-26 5 views
1
私はあなたがこのスクリプトを使用してプレイヤー(ボールを)以下れるW、A、S、Dのザ・メインカメラ使ってボールをコントロールゲーム持っ

が収まるようにメインカメラのゲームオブジェクトを変更Unity3D多人数

public class CameraMovement : MonoBehaviour { 

public GameObject Player; 

private Vector3 Set; 


void Start() 
{ 
    Set = transform.position - Player.transform.position; 
} 

void LateUpdate() 
{ 
     transform.position = new Vector3 (-280f, 15f, 28f); 
     transform.rotation = Quaternion.Euler (0.0f, 90.0f, 0.0f); 
} 
}  

}

ここでは、LANを使用してこのゲームのマルチプレイヤーを作った。同じ時間に複数のボールをコントロールするプレーヤーを増やすことができます。ただし、プレーヤーがLANサーバーに参加するたびに、ネットワークマネージャーを使用してプレハブから新しいボールが作成されます。問題は、スクリプトで見ることができるように、シングルプレイヤー版では、ゲームオブジェクト 'Player'をカメラに接続する必要がありますが、LANサーバーでこのゲームを実行しているときは、Playerゲームオブジェクトはありません。ネットワークマネージャーは、プレーヤーがゲームに参加した後にのみ作成します。ですから私の質問は、ゲームに参加している各プレーヤーにカメラをどのように接続するのですか?また、別のプレイヤーから別のプレイヤーに移動できるので、各プレイヤーは自分のカメラを持っていなければならないと私は思っています。

ありがとうございました!

答えて

0

あなたが使用しているネットワークに関する情報を提供していないため、最初は質問の幅が広がりました。 PUN、UNET、または別のものを使用していますか?

この問題を解決する方法を広く説明できます。

プレーヤーが参加すると、メインカメラを見つけて、自分のクライアントの中で彼に割り当てます。

すべてのクライアントには独自のメインカメラがあるため、問題はありません。

//The code will look something like this. 
void OnJoinedServer() //When the player joins the server 
{ 
    //find the main camera gameobject 
    GameObject camera = Camera.main.gameObject; 
    camera.transform.SetParent(player.transform); 
    //Maybe set the right position as well 
    camera.transform.localPosition = [SomeVector3]; 
} 

これが役に立ちます。

次回は可能な限り多くの情報を提供してください。

+0

ありがとうございました!それは問題を解決し、広い質問を申し訳なく思うので、私は次回より多くの情報を提供しようとします。 –

関連する問題