混用Application.LoadLevel 和 PhotonNetwork.LoadLevel
最近这一周从上周五晚上加完班回家夜里都12点了. 又赶紧送孩子去儿童医院 .. 就肺炎住院了. 真是有啥别有病呢. 悲剧的是我周三夜里陪了一夜后. 转天晚上也发烧了..
周四 周五输了两天液. 这病毒咋这么厉害呢.. 这倒霉的空气. pm2.5 xxx 没法活了. 住了8天 一个高配 macbook 进去了. 有时候就想啊, 真是又该归零了.
所以劝各位, 没买的赶紧买, 转化为生产力. 放着那真不叫钱了. 人家同屋的 虽说是农民大哥, 可花起钱来比咱爽快多了。
donews一直没办法登陆. 更新不了了. 耽误了好几篇blog.
photon cloud 最近的进展:
1. 实现了房间模式与mmo共存. PhotonUnity3d.dll 用 pun带的那份就好了.
2. 另外实现了给Scene的 Object添加 guid的属性, 稍微结合Photon就可以实现手动绑定 photonview ,从而利用photonnetwork进行数据同步了. 好处是: 不需要重新修改关卡设计. 尤其是已经放好了的怪 不是用Prefab摆的 不是用 Spawner 摆的. photonview 的 observe 属性可以动态指定. 或者做成预置件.
仔细想想- 这种方法其实是需求驱动的. 目标明确, 实现起来也容易 没什么障碍. 如果所有工作都是如此, 那当然没什么延期之类的了. 但scaleform 显然用不好的话 就会有性能问题. 越底层 越容易出问题. 做底层的通常和悲催的事联系很多. 越是逻辑的层面多的话, 越容易受控制.
几个结论: PhotonNetwork.LoadLevel 不能实现所有房间内客户端加载统一的场景. 需要在 onJoinedRoom 时 各自自己调用. 或者接受 Master 传递的参数后调用.
我试验过客户端A上加载一个盒子 随机颜色给 Red. B客户端加载后 该盒子颜色不一定是红色的. 想要保持一致,还需要做数据同步. 或者让盒子变成 sceneobject (最后还得自己做属性同步)
photon没那么智能. 估计也是为了足够灵活. 没有写死。
用不好的话, photon 缓冲的消息量 会把新进来的 client 刷死.
PUN 是封装的 Photon API的 Unity 的插件. 也是为了最大保持和 Unity 自带的 Network开发的接口保持一致. (但是要从零再去了解这个的话 似乎和直接用 Photon差不多啊)
姑且按照他的标准模式先来吧.
核心就是 RPC 交互. 本地远程都调用 RPC 但是只在真正的Master上 执行. 从而保证数据和逻辑的统一.
PhotonNetwork.InstantiateSceneObject 适合后生成的实体的同步. 还能cache.

混用Application.LoadLevel 和 PhotonNetwork.LoadLevel的更多相关文章
- Photon多人游戏开发教程
http://gad.qq.com/article/detail/26112 PUN介绍 入门 Photon Unity Networking(首字母缩写PUN)是一个Unity多人游戏插件包.它提供 ...
- Unity3d资源管理分析
原创链接:http://blog.csdn.net/ox_thedarkness/article/details/9197453 分离资源管理 参考 1.Unity3D占用内存太大的解决方法 - 星尘 ...
- 【程序】必看干货:Photon多人游戏开发教程
PUN介绍 http://vibrantlink.com/ 入门 Photon Unity Networking(首字母缩写PUN)是一个Unity多人游戏插件包.它提供了身份验证选项.匹配,以及快速 ...
- PUN介绍(干货)
PUN介绍 入门 Photon Unity Networking(首字母缩写PUN)是一个Unity多人游戏插件包.它提供了身份验证选项.匹配,以及快速.可靠的通过我们的Photon后端实现的游戏内通 ...
- Photon PUN 二 大厅 & 房间
一, 简介 玩过 LOL , dota2, 王者荣耀 等MOBA类的游戏,就很容易理解大厅和房间了. LOL中一个服务器就相当与一个大厅; 什么电一,电二 ,,, 联通一区等 每一个区就相当于一个大厅 ...
- Application.LoadLevel & Object.DontDestroyOnLoad
[Application.LoadLevel] 只有在File->Build Setting中设置了的按钮才能被加载. 当level加载完成后,MonoBehaviour.OnLevelWasL ...
- Application.LoadLevel
Unity在场景切换之间清理下内存 http://www.cnblogs.com/dongz888/p/4920714.html
- Unity中LoadLevel与LoadLevelAsync的区别
1.LoadLevel 同步加载 写法:Application.LoadLevel(“name”); 优点:读取场景使用同步的方法就可以,因为是同步方法所以读取的速度是最快的,也不用更新界面,因为同步 ...
- application/json 与 application/x-www-form-urlencoded的简单比较
application/x-www-form-urlencoded 提交请求示例 curl -X POST 'http://localhost:8080/formPost' -d 'id=1& ...
随机推荐
- ReportView显示本地报表
from:http://www.cnblogs.com/duanshuiliu/archive/2012/07/13/2589862.html 使用ReportView控件可以显示远端Report s ...
- 关于线程安全Dictionary
使用Dictionary时, 是线程不安全的(). 会出现以下的问题, 导致IIS挂掉: 其实DicMapper是不为NUL的, DicMapper["aaasdfasdfasdfzxc ...
- JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
JavaScript:学习笔记(7)——VAR.LET.CONST三种变量声明的区别 ES2015(ES6)带来了许多闪亮的新功能,自2017年以来,许多JavaScript开发人员已经熟悉并开始使用 ...
- javascript Date对象 之 date初始化
javascript Date对象 --> 日期初始化: 总结: 日期初始化的 方式: 1. new Date( yyyy, M(+), d(+), h(+), m(+), s(+) ); 2. ...
- IE6/7 下:inline-block解决方案
6/IE7下:inline-block解决方案 IE6/IE7下对display:inline-block的支持性不好. 1.inline元素的display属性设置为inline-block时, ...
- hadoop27---netty中handler的执行顺序
Netty是基于Java NIO的网络应用框架. Netty是一个NIO client-server(客户端服务器)框架,使用Netty可以快速开发网络应用,例如服务器和客户端协议.Netty提供了一 ...
- IntelliJ IDEA 2017 创建SpringBoot项目, 及.jar没有主清单属性解决办法
1. 创建项目: File >> New >> Spring Initializr 选好 SDK, 及 依赖包(比如 Web >> Web ) . 需要使用 ...
- OSTU二值化算法
介绍 Ostu方法又名最大类间差方法,通过统计整个图像的直方图特性来实现全局阈值T的自动选取,其算法步骤为: 1) 先计算图像的直方图,即将图像所有的像素点按照0~255共256个bin,统计落在每个 ...
- 关系型数据库的ACID规则
1.A (Atomicity) 原子性 原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚. 比如 ...
- 第二篇:Spark SQL Catalyst源码分析之SqlParser
/** Spark SQL源码分析系列文章*/ Spark SQL的核心执行流程我们已经分析完毕,可以参见Spark SQL核心执行流程,下面我们来分析执行流程中各个核心组件的工作职责. 本文先从入口 ...