0
0

【Unity】PUN2を学習する ゲームを作る-1

Last updated at Posted at 2023-12-09

この記事は、【完走したい】楽しくいろいろやる Advent Calendar 2023の7日目です。
エアホッケーを作ります。
続きです。3日目です。
終わらないので明日もやります。

ホッケーのパックを作る

はじくやつです。
プッシャーと同様、オブジェクトを作ってprefab化します。
二人そろってゲームを始めるときに出るようにします。
重要 2つ目のオブジェクトを作成するときはInstantiateで生成するとエラーが出ます
どうやら、prefab化したオブジェクトをいったんHierarchyに戻し、Photon ViewとPhoton Transform Viewをつけるだけでいいみたいです。
スクリーンショット (154).png
こんな感じになりました。

その後

いろいろあって3dのプロジェクトに変更しました。
どうやったのかというと、
Edit>projectsettings>Editor
の中の
'Defalt Behaviour Mode'を3dにしただけです。
簡単に変更できます。

土台を作る

全て作った後に撮った写真なのでわかりにくいかと思いますが、今は
・地面
・壁
があれば十分です
↓画像
スクリーンショット 2023-12-09 124311.png
青い壁がちょっと変な形をしているのがわかると思います。
実は、ボールのはね方によってボールが壁にくっついてしまうことがありました。
その為、壁にくっついたボールを取るために出っ張りを付けました。
このでっぱりは、scale(1,1,1)のcubeをx軸に45度回転させることで作れます。

パック(作り直し)

sphereで代用しました
中身

using Photon.Pun;
using Photon.Realtime;
using Unity.VisualScripting;
using static Unity.VisualScripting.Member;

public class BallControll : MonoBehaviourPunCallbacks
{private Rigidbody rb;
    public bool Once = false;
    public int BallRotate;
    // Start is called before the first frame update
    void Start()
    {
    
     

    }

    // Update is called once per frame
    void Update()
    {
        if (PhotonNetwork.InRoom)
        {
           
            if (PhotonNetwork.CurrentRoom.PlayerCount >= 2)
            {
                if (photonView.OwnerActorNr == 0)
                {
                    if (Once == false)
                    {
                        Once = true;
                        rb = this.GetComponent<Rigidbody>();
                        BallRotate = Random.Range(0, 360);
                        Transform myTransform = this.transform;
                        Vector3 localAngle = myTransform.localEulerAngles;
                        localAngle.y = BallRotate;
                        myTransform.localEulerAngles = localAngle;
                        Vector3 Kasoku = new Vector3(4f, 0, 4f);
                        rb.AddForce(Kasoku, ForceMode.VelocityChange);

                    }

                }
            }
        }
    }
    
}

ボールをランダムに角度をつけて、速度をつけています。
が、これではなぜか角度は変えられませんでした。
ボールは動いているので、とりあえずOKです。
今日の分ここまで

まとめ

現在のルーム人数カウント
'PhotonNetwork.CurrentRoom.PlayerCount'
などを学びました。
参考

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