[Unity3D]问问局域网游戏的动画同步问题

yxlovemoney 2015-01-14 09:09:20
现在大致情况是这样的,用Network创建了局域网,
然后通过给游戏内的模型添加 Network View组件去实现同步,

现在在角色的动画方法中这样处理

[RPC] // 告诉UNITY这是一个远程方法
void PlayState(string animName)
{

animation.CrossFade(animName, 0.2f);
}


然后在Update方法中,通过远程调用该方法,去实现动作上的同步

void Update () {
float h = Input.GetAxis("Horizontal"); // 取得水平轴的值
float v = Input.GetAxis("Vertical"); // 取得垂直轴的值

if (Mathf.Abs(h) > 0.1f || Mathf.Abs(v) > 0.05f)
{

networkView.RPC("PlayState", RPCMode.All, "Walk");
}

}


大致是这样去处理,这样是同步了,但在另一个客户端上看对方的走动,却是一卡一卡的,
请问这是什么问题?该如何解决呢?
...全文
2552 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
linzh122 2017-02-25
  • 打赏
  • 举报
回复
有一个networkTransform的组建中有个叫NetworkSendRate的 这个是客户端同步速率把这个跳到最高就不会卡顿了
Carry_小超 2015-03-05
  • 打赏
  • 举报
回复
你这样实时的update 啷个可能不卡 要是多台机子运行有可能卡爆 如楼上所说给他一个指令就够啦
无名剑 2015-02-22
  • 打赏
  • 举报
回复
... 网络通知播放动画?! 这也太过了吧,网络发送消息一般不要发送太过复杂的信息 直接告诉对面机器要开始走 怎么走 然后让对面游戏里头客户端处理具体动画播放的逻辑就OK了
郑州的文武 2015-02-20
  • 打赏
  • 举报
回复
感觉好高深啊,现在楼主解决了么?
yxlovemoney 2015-01-27
  • 打赏
  • 举报
回复
引用 4 楼 candycat1992 的回复:
一卡一卡是网络延迟吧?你输出下收到信息的log就知道啦 如果是网络延迟,是否可以不要连续走动,而是只发送一个目的地位置
不可能延迟啊,我在自己同一台电脑上测试的
  • 打赏
  • 举报
回复
一卡一卡是网络延迟吧?你输出下收到信息的log就知道啦 如果是网络延迟,是否可以不要连续走动,而是只发送一个目的地位置
yxlovemoney 2015-01-15
  • 打赏
  • 举报
回复
还发现一个新问题

因为我用的是CharacterController这组件控制人物模型的移动的,会在模型身上加上CharacterMotor.js这个脚本。 然后我生成脚本的时候发现报了这样的错误、但这错误不是常常会出现,只是偶尔出来一两次。
yxlovemoney 2015-01-15
  • 打赏
  • 举报
回复
引用 1 楼 yxlovemoney 的回复:
现在发现有时编译时会出现这个错误,难道是因为我调用了JS脚本但没把它放到Standard Assets的原因?
不对这脚本是UNITY自带的,已经是在那个文件夹里,是那个CharacterMotor.js脚本
yxlovemoney 2015-01-15
  • 打赏
  • 举报
回复


现在发现有时编译时会出现这个错误,难道是因为我调用了JS脚本但没把它放到Standard Assets的原因?

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧