「Unity/photon/pun2/位置同期」の版間の差分
ナビゲーションに移動
検索に移動
| 30行目: | 30行目: | ||
void OnPhotonInstantiate(PhotonMessageInfo info) | void OnPhotonInstantiate(PhotonMessageInfo info) | ||
{ | { | ||
info.Sender.TagObject = this.gameObject; | info.Sender.TagObject = this.gameObject; | ||
} | } | ||
2022年12月7日 (水) 08:11時点における版
アバター風にしてみる
- 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)
{
info.Sender.TagObject = this.gameObject;
}
}
公式:https://doc.photonengine.com/ja-jp/pun/v2/gameplay/instantiation