玩fps 要不要开git s you syn coles

& 迷茫了!玩游戏究竟该不该开启垂直同步??! ...
查看: 18809|回复: 70
UID1703642主题阅读权限40帖子精华0积分626金钱2736 荣誉0 人气30 在线时间1691 小时评议0
Lv.4游侠高级会员, 积分 626, 距离下一级还需 374 积分
帖子精华0积分626金钱2736 荣誉0 人气30 评议0
RT,看了一些文章,有的人说开启垂直同步会降低性能,降低帧数,不建议开;有的人说会稳定画面,保护显卡,建议都打开。到底哪种说法比较合理呢???
比如我现在运行的一款游戏,不开启垂直同步的情况下平均帧数是30~40帧,那么我是否还有必要开启垂直同步???
UID1126029主题阅读权限30帖子精华0积分219金钱6865 荣誉0 人气4 在线时间2299 小时评议0
Lv.3游侠中级会员, 积分 219, 距离下一级还需 281 积分
帖子精华0积分219金钱6865 荣誉0 人气4 评议0
本帖最后由 shuyue 于
11:07 编辑
开垂直同步可以防止画面撕裂,但是会降低最大帧数
如果你的画面不撕裂且对30以上帧数不敏感的话,可以不开
反之则打开
UID476374主题阅读权限50帖子精华0积分1905金钱5352 荣誉1 人气26 在线时间6673 小时评议0
Lv.5游侠白银会员, 积分 1905, 距离下一级还需 95 积分
帖子精华0积分1905金钱5352 荣誉1 人气26 评议0
主要是撕裂。。。不开不行啊,也许是我显示器太差的缘故?
UID1703642主题阅读权限40帖子精华0积分626金钱2736 荣誉0 人气30 在线时间1691 小时评议0
Lv.4游侠高级会员, 积分 626, 距离下一级还需 374 积分
帖子精华0积分626金钱2736 荣誉0 人气30 评议0
如果我运行一款游戏的时候本来就有点卡了,是不是就不应该开启了???另外对于那些帧数波动较大的游戏该不该开启??
UID2639040主题阅读权限70帖子精华0积分8537金钱11321 荣誉7 人气368 在线时间27162 小时评议0
Lv.7游侠白金会员, 积分 8537, 距离下一级还需 6463 积分
帖子精华0积分8537金钱11321 荣誉7 人气368 评议0
为防止性能降低以前都不开的,那时显示器小撕裂也不明显,到后来换大显示器后就没办法了,撕裂比性能下降更影响,于是不得不开。
UID1703642主题阅读权限40帖子精华0积分626金钱2736 荣誉0 人气30 在线时间1691 小时评议0
Lv.4游侠高级会员, 积分 626, 距离下一级还需 374 积分
帖子精华0积分626金钱2736 荣誉0 人气30 评议0
这个我已经看过了!我的理解就是:对于帧数较高,平均超过30帧的游戏开启会比较好,对于平均帧数低于30帧的还是不要开启为妙。不知道这样的理解对不对??
炎の男·三井寿游侠元勋版主『竞技体育区』NBA洛克公园【组长】游侠攻略组【攻略】神奈川第一得分后卫 Fish★★★★★★★★
UID1036783主题阅读权限150帖子精华0积分10565金钱205715 荣誉155 人气1702 在线时间19974 小时评议46
帖子精华0积分10565金钱205715 荣誉155 人气1702 评议46
我开垂直同步是为了降低&稳定帧数 以防性能资源白白被消耗了
UID4317300主题阅读权限40帖子精华0积分588金钱4996 荣誉0 人气32 在线时间3781 小时评议0
Lv.4游侠高级会员, 积分 588, 距离下一级还需 412 积分
帖子精华0积分588金钱4996 荣誉0 人气32 评议0
如果你显示器是120HZ的 而你的硬件性能有完全没有问题 那么就打开垂直同步 这样帧数稳定在120 而画面也不会撕裂
UID420523主题阅读权限30帖子精华0积分262金钱1999 荣誉0 人气2 在线时间782 小时评议0
Lv.3游侠中级会员, 积分 262, 距离下一级还需 238 积分
帖子精华0积分262金钱1999 荣誉0 人气2 评议0
单机就打开,竞技就关掉
UID1641160主题阅读权限20帖子精华0积分2294金钱3220 荣誉0 人气0 在线时间1104 小时评议0
头像被屏蔽
帖子精华0积分2294金钱3220 荣誉0 人气0 评议0
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
UID4642383主题阅读权限30帖子精华0积分366金钱978 荣誉5 人气0 在线时间115 小时评议0
Lv.3游侠中级会员, 积分 366, 距离下一级还需 134 积分
帖子精华0积分366金钱978 荣誉5 人气0 评议0
画面没问题,就别开.
它是一个处理性能的,不是增强画质的.
画面如果不对劲,再开开.
UID4592832主题阅读权限60帖子精华0积分2441金钱10276 荣誉3 人气53 在线时间6661 小时评议0
Lv.6游侠黄金会员, 积分 2441, 距离下一级还需 3559 积分
帖子精华0积分2441金钱10276 荣誉3 人气53 评议0
如果开了之后卡,就别开了。不卡就开吧,其实也没多大区别。
UID481408主题阅读权限60帖子精华2积分2251金钱8125 荣誉10 人气25 在线时间2021 小时评议0
Lv.6游侠黄金会员, 积分 2251, 距离下一级还需 3749 积分
帖子精华2积分2251金钱8125 荣誉10 人气25 评议0
垂直同步,顾名思义,不开的话,游戏画面在垂直方向上就不同步了,表现为画面撕裂
UID383470主题阅读权限60帖子精华1积分3948金钱8497 荣誉0 人气41 在线时间8817 小时评议0
Lv.6游侠黄金会员, 积分 3948, 距离下一级还需 2052 积分
帖子精华1积分3948金钱8497 荣誉0 人气41 评议0
有些游戏垂直同步选项都有说明的,选此项可能降低游戏性能,这么明白了还纠结神马呢
UID817520主题阅读权限30帖子精华1积分313金钱1092 荣誉0 人气0 在线时间154 小时评议0
Lv.3游侠中级会员, 积分 313, 距离下一级还需 187 积分
帖子精华1积分313金钱1092 荣誉0 人气0 评议0
1、不开垂直某显卡玩某游戏有画面撕裂现象,平均帧率120(汗FPS120在刷新率60的显示器上应该不会出现撕裂),显卡耗电200W,工作温度65°
2、开垂直画面撕裂消失,帧率60恒定(这个要看显示器的刷新率60、85、100、120等等),显卡耗电100+W,工作温度50°
3、省电降温养眼何乐而不为?
注1、在刷新率60的显示器上显卡处理图像FPS60和FPS120的表现相同,多出的60帧毫无意义纯粹是浪费资源。
注2、以上所有数据除显示器刷新率外,只是说个大概请不要纠结~
注3、话说玩游戏能保证稳定30帧的情况下能开就开吧,垂直又不怎么消耗资源。
注4、现在没有人用低于512显存的显卡强上1080的显示器吧?没有的话开垂直必开三倍缓存。
UID1350166主题阅读权限50帖子精华0积分1106金钱7151 荣誉2 人气6 在线时间10724 小时评议0
Lv.5游侠白银会员, 积分 1106, 距离下一级还需 894 积分
帖子精华0积分1106金钱7151 荣誉2 人气6 评议0
很少游戏有画面撕裂的情况
有画面撕裂情况的游戏开垂直同步还是撕裂
蓝宝石HD3870海外版
UID1811030主题阅读权限70帖子精华0积分9065金钱8374 荣誉6 人气185 在线时间42332 小时评议0
Lv.7游侠白金会员, 积分 9065, 距离下一级还需 5935 积分
帖子精华0积分9065金钱8374 荣誉6 人气185 评议0
性能不会降多少的,不管多少帧开就行了........................
CPU:Intel i5 3570
主板:映泰 TZ75B
内存:南亚易胜 DDR3 1333 4G *2
显卡:影驰 GTX660TI
SSD:镁光 MX100 256G
电源:安钛克 BP550Plus
显示器:DELL P2414H
鼠标:Razer 那伽梵蛇六芒星
耳机:海盗船 复仇者2100
UID524637主题阅读权限60帖子精华0积分2639金钱1700 荣誉0 人气2 在线时间1787 小时评议0
Lv.6游侠黄金会员, 积分 2639, 距离下一级还需 3361 积分
帖子精华0积分2639金钱1700 荣誉0 人气2 评议0
一般开着就行了
不会吃亏的
Win7的兼容性比AMD强!
UID1522502主题阅读权限20帖子精华0积分130金钱480 荣誉0 人气0 在线时间9 小时评议0
Lv.2游侠会员, 积分 130, 距离下一级还需 70 积分
帖子精华0积分130金钱480 荣誉0 人气0 评议0
肯定开,开了之后,画面不会撕裂
所谓降低游戏性能是这样的,你配置够,不开,帧数是60帧以上,开了之后帧数只能是60,这就是所谓的降低性能,但其实60帧玩哪个游戏会卡呢?
所以不管配置怎么样都开吧
UID429710主题阅读权限60帖子精华0积分4528金钱10142 荣誉3 人气5 在线时间2716 小时评议0
Lv.6游侠黄金会员, 积分 4528, 距离下一级还需 1472 积分
帖子精华0积分4528金钱10142 荣誉3 人气5 评议0
能开尽量开............
2015年优秀版主勋章
2015年优秀版主勋章
2014年优秀版主勋章
2014年优秀版主勋章
游侠元勋版主
任职满72个月
元老版主勋章
任职满36个月
任职满12个月
资深版主勋章
任职满24个月
白金会员勋章
用户积分达到6000
发帖数达到10000
版主评议达到4,勤于处理版务
NBA洛克公园荣誉勋章
NBA洛克公园荣誉勋章
2013年度杰出版主勋章
2013年度杰出版主勋章
Powered by高性能显卡到底需不需要G Sync?_显卡吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:2,611,213贴子:
高性能显卡到底需不需要G Sync?收藏
G-SYNC技术在显示器中内置一枚可与GeForce硬件直接通讯的芯片,这枚自带缓存的芯片可以协调显示器与GPU outputbuffer之间的数据同步。通过G-SYNC芯片的控制,显示器的刷新延迟将可以与GPU帧输出延迟保持完全一致,支持G-SYNC技术的显示器会根据GPU当前的性能水平自动调节刷新率,在G-SYNC芯片侦测到GPU的帧输出延迟大于16ms时,它便会自动延长显示器的刷新延迟,避免传统的帧丢弃问题所导致的视觉卡顿现象。G-Sync能够去除游戏垂直同步(VSync)开启时的画面滞后问题,也能够克服垂直同步关闭时画面失真问题。常规显示器会直接同步GPU的处理结果,而借助G-Sync模块,只有当GPU完成一帧的渲染和画面优化后,显示器才会刷新显示内容。
孩子从小学了体操之后体质也变好了,幸好有国际的教练耐心指导
看这个介绍感觉卡基们的配置并不需要g sync啊
普通的垂直同步是限制渲染帧数保持最高帧率等于显示器刷新率,也就是最高渲染60帧/秒 防止显示器跟不上显卡
但是如果显卡渲染低于60帧/秒 比如说30 普通显示器的刷新率是固定的,显卡渲染30帧/秒 显示器刷新率还是60
就不同步了,会出现问题
g sync是根据显卡渲染帧率同步显示器刷新率,如果显卡每秒渲染30帧输出的时候会和显示器刷新率同步,也就是FPS为30的时候,显示器刷新率也为30hz
举个例子,970用144hz g sync显示器玩LOL
假如不开垂直不开gsync水池500帧,对线400帧,团战250帧,开了sync 水池144 对线144 团战144
如果没有g sync 还是970 还是144hz显示器,开了垂直水池144,对线144,团战144,没有区别啊
我说点个人感觉,我自己是980ti显卡,屏幕是144hz的35曲面,没有gsync,玩着很不错,gsync这个技术是针对比较低的fps才能体现的
支持G的显示器都好贵况且E3党用不了A卡党也用不了,所以用这玩意的人怕是不多 ?﹏﹏ 到现在为止,发贴26分钟,才有8条回复,唉。
527轻会议,视频会议软件终身免费使用啦!
根本不用,我也是980ti,用的144HZ 1MS显示器,关垂直,根本没有画面撕裂
反正玩GTA5把垂直关了,在驱动里开启这个,然后发现画面撕裂……貌似连基本的垂直同步功能都没做到……
我没钱买显示器。
实现得有个曲屏显示器 and 970
所以我感觉freesync和gsync在高端显卡上没啥用,如果是附带还可以,如果买那种普通刷新率 卖点是gsync的显示器就不太值了(高端显卡)
有人测试过,开了垂直同步帧数会降低,不开画面撕裂。 不过这个技术本来也不怎么值得花大价钱买个显示器
freesyne便宜啊,同样的显示器搭载freesyne就比普通贵100,搭载n卡破技术的显示器比普遍多将近1000,性能还不如freesyne。。。而且听说freesyne可以提高帧数。。还能改显示器刷新率也不造是不是真的
登录百度帐号推荐应用  最近想用Unet写一些东西,但发现卡顿问题比较严重,找了一些资料,希望这些知识也能对大家有所帮助。
  首先要认清一点,Unet是服务器权威的。这在同步问题中很是重要。
  状态同步是从服务器向客户端方向上的。本地客户端没有序列化的数据,因为它和服务器共享同一个场景。任何为本地客户端序列化的数据都是多余的。然而,SyncVar钩子函数会被本地客户端调用。注意数据不会从客户端向服务器同步,这个方向上的操作叫做命令(Commands)。
  除了可以直接用的network类的同步组件,我们还应该认识几个操作:
同步变量[SyncVar]–
   同步变量是NetworkBehaviour脚本中的成员变量,他们会从服务器同步到客户端上。当一个物体被派生出来之后,或者一个新的玩家中途加入游戏后,他会接收到他的视野内所有物体的同步变量。成员变量通过[SyncVar]标签被配置成同步变量:
class Player :NetworkBehaviour
public void TakeDamage(int amount)
if (!isServer)
  同步变量的状态在OnStartClient()之前就被应用到物体上了,所以在OnStartClient函数中,物体的状态已经是最新的数据。
  同步变量可以是基础类型,如整数,字符串和浮点数。也可以是Unity内置数据类型,如Vector3和用户自定义的结构体,但是对结构体类型的同步变量,如果只有几个字段的数值有变化,整个结构体都会被发送。每个NetworkBehaviour脚本可以有最多32个同步变量,包括同步列表(见下面的解释)。
  当同步变量有变化时,服务器会自动发送他们的最新数据。不需要手工为同步变量设置任何的脏数据标志位。
  注意在属性设置函数中设置一个同步变量的值不会使他的脏数据标志被设置。如果这样做的话,会得到一个编译期的警告。因为同步变量使用他们自己内部的标识记录脏数据状态,在属性设置函数中设置脏位会引起递归调用问题。
  同步变量还可以指定函数,使用hook:
  当服务器改变了playerName的值,客户端会调用OnMyName这个函数
[SyncVar(hook = "OnMyName")]
public string playerName = "";
public void OnMyName(string newName)
playerName = newN
nameInput.text = playerN
同步列表(SyncLists)–
  同步列表类似于同步变量,但是他们是一些值的列表而不是单个值。同步列表和同步变量都包含在初始的状态更新里。同步列表不需要[SyncVar]属性标识,他们是特殊的类。内建的基础类型属性列表有:
SyncListString
SyncListFloat
SyncListInt
SyncListUInt
SyncListBool
  还有个SyncListStruct可以给用户自定义的结构体用。从SyncListStruct派生出的结构体类可以包含基础类型,数组和通用Unity类型的成员变量,但是不能包含复杂的类和通用容器。  
  同步列表有一个叫做SyncListChanged的回调函数,可以使客户端能接收到列表中的数据改动的通知。这个回调函数被调用时,会被通知到操作类型,和修改的变量索引。
public class MyScript :NetworkBehaviour
public struct Buf
public int
public string
public float
public class TestBufs : SyncListStruct&Buf& {}
TestBufs m_bufs = new TestBufs();
void BufChanged(Operation op, int itemIndex)
Debug.Log("buf changed:" + op);
void Start()
m_bufs.Callback = BufC
定制序列化函数–
  通常在脚本中使用同步变量就够了,但是有时候也需要更复杂的序列化代码。NetworkBehaviour中的虚函数允许开发者定制自己的序列化函数,这些函数有:
public virtual boolOnSerialize(NetworkWriter writer, bool initialState);
public virtual voidOnDeSerialize(NetworkReader reader, bool initialState);
  initalState可以用来标识是第一次序列化数据还是只发送增量的数据。如果是第一次发送给客户端,必须要包含所有状态的数据,后续的更新只需要包含增量的修改,以节省带宽。同步变量的钩子函数在initialState为True的时候不会被调用,而只会在增量更新函数中被调用。
  如果一个类里面声明了同步变量,这些函数的实现会自动被加到类里面,因此一个有同步变量的类不能拥有自己的序列化函数。
  OnSerialize函数应该返回True来指示有更新需要发送,如果它返回了true,这个类的所有脏标志位都会被清除,如果它返回False,则脏标志位不会被修改。这可以允许将多次改动合并在一起发送,而不需要每一帧都发送。
序列化流程–
  具有NetworkIdentity组件的游戏物体可以带有多个从NetworkBehaviour派生出来的脚本,这些物体的序列化流程为:
在服务器上:
每个NetworkBehaviour上都有一个脏数据掩码,这个掩码可以在OnSerialize函数中通过syncVarDirtyBits访问到
NetworkBehavious中的每个同步变量被指定了脏数据掩码中的一位
对同步变量的修改会使对应的脏数据位被设置
或者可以通过调用SetDirtyBit函数直接修改脏数据标志位
服务器的每个Update调用都会检查他的NetworkIdentity组件
如果有标记为脏的NetworkBehaviour,就会为那个物体创建一个更新数据包
每个NetworkBehaviour组件的OnSerialize函数都被调用,来构建这个更新数据包
没有脏数据位设置的NetworkBehaviour在数据包中添加0标志
有脏数据位设置的NetworkBehavious写入他们的脏数据和有改动的同步变量的值
如果一个NetworkBehavious的OnSerialize函数返回了True,那么他的脏标志位被重置,因此直到下一次数据修改之前不会被再次发送
更新数据包被发送到能看见这个物体的所有客户端
在客户端:
接收到一个物体的更新数据包
每个NetworkBehavious脚本的OnDeserialize函数被调用
这个物体上的每个NetworkBehavious脚本读取脏数据标识
如果关联到这个NetworkBehaviour脚本的脏数据位是0,OnDeserialize函数直接返回;
如果脏数据标志不是0,OnDeserialize函数继续读取后续的同步变量
如果有同步变量的钩子函数,调用钩子函数
对下面的代码:
public class data :NetworkBehaviour
public int int1 = 66;
public int int2 = 23487;
public string MyString = "esfdsagsdfgsdgdsfg";
产生的序列化函数OnSerialize将如下所示:
public override boolOnSerialize(NetworkWriter writer, bool forceAll)
if (forceAll)
writer.WritePackedUInt32((uint)this.int1);
writer.WritePackedUInt32((uint)this.int2);
writer.Write(this.MyString);
return true;
bool wroteSyncVar = false;
if ((base.get_syncVarDirtyBits() & 1u) != 0u)
if (!wroteSyncVar)
writer.WritePackedUInt32(base.get_syncVarDirtyBits());
wroteSyncVar = true;
writer.WritePackedUInt32((uint)this.int1);
if ((base.get_syncVarDirtyBits() & 2u) != 0u)
if (!wroteSyncVar)
writer.WritePackedUInt32(base.get_syncVarDirtyBits());
wroteSyncVar = true;
writer.WritePackedUInt32((uint)this.int2);
if ((base.get_syncVarDirtyBits() & 4u) != 0u)
if (!wroteSyncVar)
writer.WritePackedUInt32(base.get_syncVarDirtyBits());
wroteSyncVar = true;
writer.Write(this.MyString);
if (!wroteSyncVar)
writer.WritePackedUInt32(0);
return wroteSyncV
反序列化函数将如下:
public override voidOnDeserialize(NetworkReader reader, bool initialState)
if (initialState)
this.int1 = (int)reader.ReadPackedUInt32();
this.int2 = (int)reader.ReadPackedUInt32();
this.MyString = reader.ReadString();
int num = (int)reader.ReadPackedUInt32();
if ((num & 1) != 0)
this.int1 = (int)reader.ReadPackedUInt32();
if ((num & 2) != 0)
this.int2 = (int)reader.ReadPackedUInt32();
if ((num & 4) != 0)
this.MyString = reader.ReadString();
  如果这个NetworkBehaviour的基类也有一个序列化函数,基类的序列化函数也将被调用。
  注意更新数据包可能会在缓冲区中合并,所以一个传输层数据包可能包含多个物体的更新数据包。
远程动作–
  网络系统允许在网络上执行远程的动作。这类动作有时也叫做远程过程调用(RPC)。有两种类型的远程过程调用,命令(Commands) – 由客户端发起,运行在服务器上;和客户端远程过程调用(ClientRpc) - 服务器发起,运行在客户端上。
命令(Commands)–
  命令从客户端上的物体发给服务器上的物体。出于安全考虑,命令只能从玩家控制的物体上发出,因此玩家不能控制其他玩家的物体。要把一个函数变成命令,需要给这个函数添加[Command]属性,并且为函数名添加“Cmd”前缀,这样这个函数会在客户端上被调用时在服务器上运行。所有的参数会自动和命令一起发送给服务器。
  命令函数的名字必须要有“Cmd”前缀。在阅读代码的时候,这也是个提示 – 这个函数比较特殊,他不像普通函数一样在本地被执行。
class Player :NetworkBehaviour
public GameObject bulletP
void CmdDoFire(float lifeTime)
GameObject bullet =(GameObject)Instantiate(bulletPrefab, transform.position +transform.right, Quaternion.identity);
var bullet2D =bullet.GetComponent&Rigidbody2D&();
bullet2D.velocity = transform.right *bulletS
Destroy(bullet, lifeTime);
NetworkServer.Spawn(bullet);
void Update()
if (!isLocalPlayer)
if (Input.GetKeyDown(KeyCode.Space))
CmdDoFire(3.0f);
  注意如果每一帧都发送命令消息,会产生很多的网络流量。
  默认情况下,命令是通过0号通道(默认的可靠传输通道)进行传输的。所以默认情况下,所有的命令都会被可靠地发送到服务器。可以使用命令的“Channel”参数修改这个配置。参数是一个整数,表示通道号。
1号通道是默认的不可靠传输通道,如果要用这个通道,把这个参数设置为1,示例如下:
[Command(channel=1)]
  从Unity5.2开始,可以从拥有客户端授权的非玩家物体发出命令。这些物体必须是使用函数NetworkServer.SpawnWithClientAuthority()派生出来的,或者是使用NetworkIdentity.AssignClientAuthority()授权过的。从物体发送出来的命令会在服务器上运行,而不是在相关玩家物体所在的客户端上。
客户端远程过程调用(ClientRPC Calls)
  客户端远程过程调用从服务器的物体发送到客户端的物体上去。他们可以从任何带有NetworkIdentity并被派生出来的物体上发出。因为服务器拥有授权,所以这个过程不存在安全问题。要把一个函数变成客户端远程过程调用,需要给函数添加[ClientRpc]属性,并且为函数名添加“Rpc”前缀。这个函数将在服务端上被调用时,在客户端上执行。所有的参数都将自动传给客户端。
  客户端远程调用必须带有“Rpc”前缀。在阅读代码的时候,这将是个提示 – 这个函数比较特殊,不像一般函数那样在本地执行。
class Player :NetworkBehaviour
[ClientRpc]
void RpcDamage(int amount)
Debug.Log("Took damage:" +amount);
public void TakeDamage(int amount)
if (!isServer)
RpcDamage(amount);
  当使用伺服器模式运行游戏的时候,客户端远程调用将在本地客户端执行 – 即使他其实和服务器运行在同一个进程。因此本地客户端和远程客户端对客户端远程过程调用的处理是一样的。
  如果想将[ClientRpc]用在点击事件的同步操作上,不能直接绑定点击事件函数,而是应该起一个新的Rpc函数,点击事件去绑定这个Rpc函数,Rpc函数里才是对点击事件的操作:
public void ClickDXView()
RpcDXView();
[ClientRpc]
public void RpcDXView()
readyPN.gameObject.SetActive(false);
startGm();
Camera.main.GetComponent&DOTweenPath&().DOPlay();
回调函数–
-[ServerCallback]:只执行在服务器端,并使一些特殊函数(eg:Update)不报错(若在此函数中改变了带有syncvar的变量,客户端不同步)
     (使用ServerCallback时,将Update中的重要语句摘出来写入Rpc函数中并调用)
-[ClientCallback]:只执行在客户端
另:[Server]:只执行在服务器端但是不能标识一些特殊函数(可以在这里调用Rpc类函数)
远程过程的参数
  传递给客户端远程过程调用的参数会被序列化并在网络上传送,这些参数可以是:
基本数据类型(字节,整数,浮点树,字符串,64位无符号整数等)
基本数据类型的数组
包含允许的数据类型的结构体
Unity内建的数学类型(Vector3,Quaternion等)
NetworkIdentity
NetworkInstanceId
NetworkHash128
带有NetworkIdentity组件的物体
  远程过程的参数不可以是游戏物体的子组件,像脚本对象或Transform,他们也不能是其他不能在网络上被序列化的数据类型。
  在使用过程中发现一个问题:带有NetworkIdentity的组件在运行之前不能是隐藏的,否则同步会受影响,在代码Start函数中置为SetActive = false,或者因为网络问题一开始隐藏的物体在后续同步中都没有问题。
原文链接:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:343次
排名:千里之外
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'}

我要回帖

更多关于 syn十段s扫描器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信