photon总结
photon服务器,非常适合轻服务器的项目,因为photon提供了房间的概念,并提供了一些房间属性,玩家属性同步的方法。photon不知道房间内发生的事,也不想知道。如果想让服务器来控制房间内操作的话,就不要使用photon服务器了,因为那需要大量的开发。。
photon的创建房间是在客户端,服务器只是记录房间基本信息,如房间名字和房间内人数以及房间是否关闭(房间是否关闭,这个属性是有一定延时的。。)
房间和玩家属性的同步,photon提供一个哈希表可以实现信息同步,但是不推荐使用。因为有延时,而且延时比较高,推荐使用rpc同步,手动控制数据同步过程。房间基本属性,最好是数据不会改变的属性,可以放在房间的哈希表内。
photon的克隆操作, 有两个方法,一个是Instantiate,一个是InstantiateInScene。玩家物体是使用Instantiate,AI或NPC使用InstantiateInScene。区别在于,Instantiate创建的物体会随客户端的断线和退出而销毁,而InstantiateInScene不会。
photon同步数据,支持基本的数据结构,如果要支持自定义的对象或结构,需要手动添加。
退出photon的房间不会跳转unity的场景,但是会销毁带有photonview组件的物体。
一个蛋疼的地方是,如果你是创建房间,你可以控制加载一个loading场景,但是如果加入一个场景的话,photon不会调用你加入房间成功事件,而是直接加入房间,并跳转到房主所加载的场景内,无法控制加载loading场景(应该可以实现控制,但是需要修改photon的客户端源码)
最好使用本地的photon服务器,可以在photon服务器官网上
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?