Articles of 光子

在光子实时C ++ SDK中处理可靠事件的最好方法是什么?

我正在制作一个ludo游戏,为其提高骰子编号和选定标记的ID的可靠事件。 这是我如何处理事件… 在光子类,我正在处理他们这样的… void NetworkLogic::customEventAction(int playerNr, nByte eventCode, const ExitGames::Common::Object& eventContent) { //for reciever(Client B) if (0 == eventCode) { int data = ExitGames::Common::ValueObject(eventContent).getDataCopy(); Globals::mIsDiceNumberRecieved = true; Globals::mDiceNumber = data; } if(1 == eventCode) { int data = ExitGames::Common::ValueObject(eventContent).getDataCopy(); Globals::mIsTokenIDRecieved = true; Globals::mTokenID = data; } } 在游戏逻辑中,我正在使用他们这样的.. if( Globals::mIsDiceNumberReceived ) { //using Globals::mDiceNumber here […]

如何在同一房间的Photon上与不同的玩家分享一些arrays元素? Unity3d

我想把卡分配给房间里的不同玩家。 我有一个类“卡片”,其中包含52个卡片这样的arrays:“2_of_spades”,“3_of_spades”…….等等。 我所要做的就是把随机的索引或值分配给不同的玩家,在此基础上我将实例化卡片精灵。 我怎样才能做到这一点? 我听说有RPC调用,但我如何设法制作一个“中间人”脚本来处理不同的玩家?

如何在Photon C ++客户端API中获得最快的区域服务器?

我面临着我的在线多人棋盘游戏的问题。 创建和join房间需要很长时间。 有时候其他玩家也不会得到这些数据。 在search完所有的Photon C ++代码后,我发现这个函数: void NetworkLogic::onAvailableRegions(const ExitGames::Common::JVector<ExitGames::Common::JString>& availableRegions, const ExitGames::Common::JVector<ExitGames::Common::JString>& availableRegionServers) { EGLOG(ExitGames::Common::DebugLevel::INFO, L"%ls / %ls", availableRegions.toString().cstr(), availableRegionServers.toString().cstr()); mpOutputListener->writeLine(L"onAvailableRegions: " + availableRegions.toString() + L" / " + availableRegionServers.toString()); // select first region from list mpOutputListener->writeLine(L"selecting region: " + availableRegions[0]); mLoadBalancingClient.selectRegion(availableRegions[0]); } 在最后一行,它只是通过可用区域的第0个区域。 我认为这个地区可能是较慢的地区。 无论如何,我仍然面临着这个问题,我需要帮助。 谢谢。

团结光子networking – 不能理解OnPhotonSerializeView

在所有教程中,我看到一个对象通过networking发送数据并接收数据。 以同样的方法同步: 码: void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info){ if (stream.isWriting) { stream.SendNext (transform.position); stream.SendNext (transform.rotation); } else { Debug.Log("never gets called "); //never gets called… transform.position = (Vector3)stream.ReceiveNext (); transform.rotation = (Quaternion)stream.ReceiveNext (); } } 但是当我testing我的代码时,数据接收到的下半部分就不会执行! 我从来没有看到日志。 但是该对象是同步的,因为它在检查器中设置: 但问题是,对象不插入,所以看起来很有趣。 所以,我需要知道如何使上层的方法工作,所以我可以做一些插值的东西。

Photon云游戏和networking服务器之间的通信

我正在使用Photon Cloud(Photon Unity Network)创建多人游戏。 对于播放器数据(configuration文件,库存,成果)的存储我使用web服务器(asp.net mvc&sql server)。 如何组织游戏客户端和Web服务器之间的通信? 我看到两种方式: 使用WWW类并将请求直接发送到Web服务器: var www = new WWW("http://mygame.com/api/user.get?id=1"); // Each time creates a new connection to the web server 使用Photon Cloud Webhooks并通过Photon服务器发送请求: PhotonNetwork.WebRpc("user.get?id=1"); // Photon Servers play a Proxy or Relay role between client and web server – http://doc.photonengine.com/en/realtime/current/reference/webrpc 你推荐哪种方式? 第一种方法很简单,但每次都会创建一个到Web服务器的新连接。 第二种方式是在客户端和Photon服务器之间使用一个持续连接,但是在将Photon服务器连接到Web服务器之间存在延迟。

我在这个多人联合/光子代码中缺less什么?

我在使用Photon和Unity的第一个简单的多人赛车游戏中遇到了麻烦。 以下经典的光子教程,我写了下面的代码,但是,它不能正常工作。 特别是有任何顺利的运动和“其他”球员的汽车继续出现和disapper …也许我可以张贴一个video。 void Update() { if (gsAppSettings.gameType == Enumerators.GameType.MultiPlayer) { if (pv.isMine) { //pv is PhotonView GetPlayerInput (); WeaponsManagement (); } else { SyncMovement (); } } else if (gsAppSettings.gameType == Enumerators.GameType.SinglePlayer) { GetPlayerInput (); WeaponsManagement (); } } void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) { if (stream.isWriting) { if (photonView.isMine) { stream.SendNext (transform.position); […]

无法连接到Photon(PUN).photon统一networking错误

我是光子networking的新手。 我的游戏正在突然出现 未连接时不能发送消息。 连接到光子或使用离线模式! UnityEngine.Debug:LOGERROR(对象)

发送数据到光子服务器上的特殊客户端

在新的光子我们有clientPeer而不是PeerBase。 而且我们有connectID而不是playerID。 所以当新的客户端连接我分配一个新的ID。 但如何发送一个数据到该客户端与确定的ID?

在线的Android游戏中连接和保存数据的最佳方式

我是新来的,我需要帮助,因为这是继续我的项目的最理想的方式。 该项目是非常简单的,在特定的Android(在将来可以迁移到其他操作系统),在unity3d和C#完成一个基本的在线RPG,目前我使用光子networking连接,但我不知道如何保存数据字符,打算连接到mysql并保存数据。 这个方法好吗? 哪一个最适合保存数据? 对不起Google翻译!

使用Photon在networking上实例化预制时出现InvalidCastException

正如标题所述,当我尝试使用Photon实例化游戏对象时,出现此错误: InvalidCastException:不能从源types转换为目标types。 NetworkingPeer.DoInstantiate(ExitGames.Client.Photon.Hashtable evData,。PhotonPlayer photonPlayer,UnityEngine.GameObject resourceGameObject)(在Assets / Photon / Photon Unity Networking / Plugins / PhotonNetwork / NetworkingPeer.cs:3069) PhotonNetwork.Instantiate(System.String prefabName,Vector3 position,Quaternion rotation,Int32 group,System.Object [] data)(在Assets / Photon / Photon Unity Networking / Plugins / PhotonNetwork / PhotonNetwork.cs:2493) PhotonNetwork.Instantiate(System.String prefabName,Vector3位置,四元数旋转,Int32组)(在Assets / Photon / Photon Unity Networking / Plugins / PhotonNetwork / PhotonNetwork.cs:2437) GunController.EquipGun(.Gun gunToEquip)(在Assets / Scripts […]