恩这个是一个基于Steamwork.Net 的steam多人联机解决方案,适用于小型P2P多人游戏。
如果你觉得这个项目对你有帮助,请给个 ⭐ XD,
如果你想和我们一起完善这个项目,请尽情的反馈Issue或者发送Pull Request,我会邀请你加入协作者。
打开主场景(Main.unity),运行,你会看到这个。 请确保已经打开了Steam客户端,Demo场景采用测试Appid 480,这个是Steam官方的测试Appid,所以你会看到许多其他人的大厅,但是你是无法加入进去的。
创建完成后你会加入大厅,大厅中包含一个聊天栏,你可以点击Invite来直接邀请Steam好友加入游戏,注意,这个按钮只有在Standalone状态下才有用,Unity编辑器状态下,请打开steam客户端,右键好友头像-邀请加入游戏,来邀请。
这个多人游戏框架与UNET十分类似。
Identity组件保存物体的ID,会在添加其他组件的时候自动添加
使用Sync组件你可以直接同步脚本的Public变量,但是目前不支持同步自定义的结构体和类,只支持基本类型和Unity的Vector3和Quaternion
使用RPC组件你可以远程调用物体的函数方法,你需要先将方法添加到组件内的列表,然后调用方法ID。
使用SyncTransform组件你可以 [平滑] 地同步物体的移动,但是物体旋转需要使用Sync。
你需要将所有会生成的物体制作成Prefab,然后添加到NetworkManager的SpawnablePrefab数组里,这个与UNET一样。 NetworkManager需要有两个组件,NetworkControl和NetworkLobbyManager,NetworkLobbyManager负责大厅,NetworkControl负责游戏内逻辑,这个物体不会在场景加载的过程中删除。