双关语 2 同步
Posted
技术标签:
【中文标题】双关语 2 同步【英文标题】:Pun 2 Synchronizing 【发布时间】:2021-04-29 00:35:18 【问题描述】:我使用 pun2(Photon Unity Networking)创建了一个多人游戏,但是当我移动和查看时,我的角色的变化将应用于其他角色,当我的朋友移动时,他们的更改将应用于我的角色
void Update()
isGrounded = Physic.CheckSqhere(groundCheck.position,groundDistance, LayeMask);
if (isGrounded && velocity.y<0)
velocity.y=-1f;
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
if (Input.GetButtonDown("Jump") && isGrounded)
velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);
Vector3 Movement = transform.right * x * transform.forward *z;
if (isGrounded)
characterController.Move(Movement * speed * Time.deltaTime)
else
characterController.Move(Movement * speedOnJumping * Time.deltaTime)
velocity.y +=gravity * Time.deltaTime;
characterController.Move(velocity * Time.deltaTime);
和
void Start()
PhotonNetwork.ConnectUsingsettings();
public override void onConnectedToMaster()
PhotonNetwork. AutomaticallySyncScene = true;
createButton.onclick.AddListener(()=>
PhotonNetwork.createRoom("Amin's Room");
);
joinButton.onclick.AddListener(()=>
PhotonNetwork.JoinRoom("Amin'sRoom");
);
base.OnConnectedToMaster();
public override void OnJoinedRoom()
if (PhotonNetwork.IsMasterClient)
Debug.Log("you are the master");
PhotonNetwork.LoadLevel(1);
base.OnJoined Room();
【问题讨论】:
请将代码包含为格式化文本,而不是屏幕截图。 【参考方案1】:未来:请将代码添加为TEXT,而不是图片!
在您的Update
方法中,您可以监听全局键盘事件。这些将在该脚本的所有个实例上执行。
您应该检查该组件是否真的属于您自己的播放器,否则忽略它,甚至最好禁用整个组件!
见Photon User Input Management
// Note that inheriting from MonoBehaviourPun instead of MonoBehaviour is mandatory!
public class YourClass : MonoBehaviourPun
...
private void Update()
// As also described in the link the IsConnected is checked in order to allow
// offline debugging of your behavior without being in a network session
if(PhotonNetwork.IsConnected && !photonView.IsMine)
// optional but why keep an Update method running of a script that
// shall anyway only be handled by the local player?
//enabled = false;
// Or you could even remove the entire component
//Destroy(this);
// Do nothing else
return;
...
【讨论】:
我用过这个方案,但是现在比我加入晚的玩家可以控制我的角色,我也可以控制他的角色,当房间里有3个人时,最新的玩家可以控制之前的玩家,你能给我一个使用pun2的fps多人游戏示例的链接吗?以上是关于双关语 2 同步的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch 分布式搜索引擎 -- 数据同步:数据同步思路分析 实现elasticsearch与数据库数据同步
Elasticsearch 分布式搜索引擎 -- 数据同步:数据同步思路分析 实现elasticsearch与数据库数据同步