LoginSignup
0
0

More than 3 years have passed since last update.

MLAPIで一人称視点で入りたい。

Last updated at Posted at 2021-06-14

やりたいこと

MLAPIでマルチプレイを実装する際に、固定カメラじゃなくて、一人称視点でゲームがしたい!!でもあんまりデモ見かけない!!ということで、実際に作ってみました。

MLAPIとは

MLAPIは、マルチオンラインゲームを簡単に実装できるものです。Unityで正式採用されたっぽい。

はまったこと

他の人が入室した際に、その人のカメラに切り替わっちゃう...

解決策

一人称視点のカメラをPrefabにつけないで、プレイヤーをInstantiateした後に別個にカメラをInstantiateして、子オブジェクトとしてくっつけました。
以下スクリプト

private void Start()
    {

        if (this.IsOwner) { 
            //後ろのカメラ(主カメラ)
            playerCam = Instantiate(camera);
            playerCam.transform.tag = "MainCamera";
            playerCam.transform.parent = this.transform;
            playerCam.transform.position = this.transform.position + new Vector3(0, 1.5f, -0.3f);
            Debug.Log("made player Cam");
        }
    }

解説

このスクリプトを、プレイヤーのPrefabにくっつけています。
まず最初に、

if(this.IsOwner){

を用いて、プレイヤーを生み出した人しかカメラを生成しないようにしています。

(大事!!IsOwnerないともともとカメラを付けているのと変わらん)

次に、

playerCam.transform.tag = "MainCamera";

で、MainCameraとして設定して、きちんと画面そのカメラの映像が映るようにします。そして、

playerCam.transform.parent = this.transform;
playerCam.transform.position = this.transform.position + new Vector3(0, 1.5f, -0.3f);

と、カメラをプレイヤーの子オブジェクトにして、位置を設定してあげればOKです。

以上で終わりです。
何かもっといい方法、間違いがあれば教えていただけると幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0