「Unity/photon/pun2/位置同期」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→アバター風にしてみる) |
|||
行1: | 行1: | ||
==アバター風にしてみる== | ==アバター風にしてみる== | ||
− | #Cube作成。ここでは" | + | #Cube作成。ここでは"AvatarCube"いう名前に変更した。 |
− | # | + | #AvatarCubeにBoxColliderが追加されていることを確認 |
− | # | + | #AvatarCubeのAddComponentにPhotonAvaterとPhotonViewとPhotonTransformViewを追加 |
− | # | + | #PhotonTransformViewに、PositionとRotationが、追加されてることを確認。 |
+ | #Assets下に、Resourcesディレクトリを追加して、AvatarCubeをResourcesに追加 | ||
#以下スクリプトでPrefabのAvaterをロードする。 | #以下スクリプトでPrefabのAvaterをロードする。 | ||
*PhotonManager.cs | *PhotonManager.cs | ||
− | GameObject avater = PhotonNetwork.Instantiate(" | + | GameObject avater = PhotonNetwork.Instantiate("AvatarCube", Vector3.zero, Quaternion.Euler(Vector3.zero),0); |
*PhotonAvater.sc | *PhotonAvater.sc | ||
行18: | 行19: | ||
public class PhotonAvater : MonoBehaviourPunCallbacks { | public class PhotonAvater : MonoBehaviourPunCallbacks { | ||
public string str = "guest1"; | public string str = "guest1"; | ||
− | void Awake() { | + | void Awake() |
− | this.name = " | + | { |
− | if (GetComponent<PhotonView>().IsMine) { | + | this.name = "Avater" + GetComponent<PhotonView>().InstantiationId; |
+ | if (GetComponent<PhotonView>().IsMine) | ||
+ | { | ||
GetComponent<Renderer>().material.color = Color.red; | GetComponent<Renderer>().material.color = Color.red; | ||
} | } | ||
+ | } | ||
+ | // 自分からの情報と他人からの情報(位置と回転)同期 | ||
+ | void OnPhotonInstantiate(PhotonMessageInfo info) | ||
+ | { | ||
+ | Debug.Log("OnPhotonInstantiate"); | ||
+ | // e.g. store this gameobject as this player's charater in PhotonPlayer.TagObject | ||
+ | info.Sender.TagObject = this.gameObject; | ||
} | } | ||
} | } |
2022年12月7日 (水) 17:10時点における版
アバター風にしてみる
- Cube作成。ここでは"AvatarCube"いう名前に変更した。
- AvatarCubeにBoxColliderが追加されていることを確認
- AvatarCubeのAddComponentにPhotonAvaterとPhotonViewとPhotonTransformViewを追加
- PhotonTransformViewに、PositionとRotationが、追加されてることを確認。
- Assets下に、Resourcesディレクトリを追加して、AvatarCubeをResourcesに追加
- 以下スクリプトでPrefabのAvaterをロードする。
- PhotonManager.cs
GameObject avater = PhotonNetwork.Instantiate("AvatarCube", Vector3.zero, Quaternion.Euler(Vector3.zero),0);
- PhotonAvater.sc
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System; public class PhotonAvater : MonoBehaviourPunCallbacks { public string str = "guest1"; void Awake() { this.name = "Avater" + GetComponent<PhotonView>().InstantiationId; if (GetComponent<PhotonView>().IsMine) { GetComponent<Renderer>().material.color = Color.red; } } // 自分からの情報と他人からの情報(位置と回転)同期 void OnPhotonInstantiate(PhotonMessageInfo info) { Debug.Log("OnPhotonInstantiate"); // e.g. store this gameobject as this player's charater in PhotonPlayer.TagObject info.Sender.TagObject = this.gameObject; } }
公式:https://doc.photonengine.com/ja-jp/pun/v2/gameplay/instantiation