facebook twitter hatena line email

「Unity/photon/pun2/位置同期」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(アバター風にしてみる)
行1: 行1:
 
==アバター風にしてみる==
 
==アバター風にしてみる==
#Cube作成。ここでは"Avatar"いう名前に変更した。
+
#Cube作成。ここでは"AvatarCube"いう名前に変更した。
#CubeにBoxColliderが追加されていることを確認
+
#AvatarCubeにBoxColliderが追加されていることを確認
#CubeのAddComponentにPhotonAvaterとPhotonViewとPhotonTransformViewを追加
+
#AvatarCubeのAddComponentにPhotonAvaterとPhotonViewとPhotonTransformViewを追加
#CubeをPrefabに追加
+
#PhotonTransformViewに、PositionとRotationが、追加されてることを確認。
 +
#Assets下に、Resourcesディレクトリを追加して、AvatarCubeをResourcesに追加
 
#以下スクリプトでPrefabのAvaterをロードする。
 
#以下スクリプトでPrefabのAvaterをロードする。
  
 
*PhotonManager.cs
 
*PhotonManager.cs
  GameObject avater = PhotonNetwork.Instantiate("Avater",  Vector3.zero, Quaternion.Euler(Vector3.zero),0);
+
  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 = "Cube"+GetComponent<PhotonView> ().InstantiationId;
+
{
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時点における版

アバター風にしてみる

  1. Cube作成。ここでは"AvatarCube"いう名前に変更した。
  2. AvatarCubeにBoxColliderが追加されていることを確認
  3. AvatarCubeのAddComponentにPhotonAvaterとPhotonViewとPhotonTransformViewを追加
  4. PhotonTransformViewに、PositionとRotationが、追加されてることを確認。
  5. Assets下に、Resourcesディレクトリを追加して、AvatarCubeをResourcesに追加
  6. 以下スクリプトで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