china.unity3d.com怎么解决.zendesk.com

天下武功,无坚不破,唯快不破
热更新就是为了更快的把内容推到用户手中。
之前,我设计了C#Light,经过半年多的持续修补,勉强可用,磕磕绊绊。感谢那些,试过,骂过,用过的朋友,在你们的陪伴下一路走来,也让我更坚定了要把这件事做好的决心。于是就有了C#Light的2.0,L#。
为什么叫L#呢?因为这次是直接加载解析DLL执行,Load,有一个L因为直接执行的东西叫做IL,有一个L因为模拟CLR的工作,有一个L于是,就有了L#
欢迎加QQ群探讨:
L#为什么舒爽
上一篇已经解释了工作模式你可以看到这一次变C#Light的"巧妙"利用VS、mono做语法检查变成真的使用vs、mono来编译彻底的解决了C#Light语法支持不完整的问题C#Light设计之初就确定了是c#的语法子集编写起来,限制诸多,处处掣肘,只保留了C#的形这一次,L#,形神兼备。而且不止是c#,L#支持C# vb.net unityscript f# boo,只要能编译成dotnet dll就可以
上一篇见这里
上一篇发布之后,L#的接口又做出了一些调整
Github 上有最新的源码其中有一个ForUnity目录,就是为Unity准备的已经测试通过了IOS和WP8这两个极端环境
L#在C#Light基础上做出的改进
1.C#light的Context设计不明确
很多人都在疑惑何时该new,为何要newL#彻底把这个设计修改为ThreadContext,脚本中的线程管理对象,在一个线程上只需要new一次,而且随时ThreadContext.active 就可获取。以前C#Light 从回调中调用,就只能看到回调一部分脚本堆栈了。L#修改了这个设计,一个线程上的脚本堆栈全是一体的,即使经过回调也完全可见,经过回调排错不再困难
2.改动了接口结构
更像反射,方便在反射和L#脚本中快速切换L#的接口结构和反射一致,而且可以直接使用L#的调用方式调用反射。更添加了快速切换反射和L#脚本的模式,发生难以判断的bug时,可以切到反射模式排查。在支持反射的平台上,也可以切换到反射模式加速快速切换的例子,有一个独立测试程序,Test01
3.注册改为可选
C#Light采用了先注册再调用的模式,很多人抱怨不便。这其实是C#Light设计上的先天困难。而IL解析DLL执行,DLL中的信息很完整,所以IL默认可以自动完成所有的类型注册也依然保留手工注册的接口。
4.L#的神器CrossBind
L#设计了一个CrossBind方式,允许脚本直接继承程序中的接口
比如在程序中设计一个
Interface IState
void Abc();
脚本可以继承此接口,并返回兼容IState的实例给程序
脚本中已经实现了关于迭代器的两个CrossBind
也就是支持在脚本中使用yield语句。
L#的优化空间
很多人都关心L#的性能问题,L#的工作还没推进到那个阶段。
现在在Alpha阶段,欢迎小白鼠加入,一起踩踩坑。
根据目前的少量用户试用反馈,其Bug是比C#Light Alpha阶段少了很多的。
但是L#存在很大的优化空间
还有很多阶段有填Cache的空间
既然我们是模拟CLR的工作,对IL语句,自然也可以做出类似JIT的优化。
比如a.nop语句完全是浪费时间可以移除
b.stloc ldloc 这种两条连续,参数一致的语句,他的意义是保存变量并加载变量,我们就可以设计一条优化指令,stlocandstayinstack,保存变量并且保留在栈上。
c.很多算术运算都是ld到栈,计算,再存回,只要设计优化的自增运算指令,就可以三条变一条
3.可以考虑 unsafe 或者本地代码的引入
阅读(...) 评论()解决Unity3d&4.3&动画系统带来的烦恼
转载请注明出处.....
最近有很多同学问我关于unity3d
4.3更新之后动画系统和以前不一样了,而且之前用的非常熟练的创建动画和修改动画很多操作都不好用了,那么在这里和大家分享一下三杀的个人经验,方便大家使用unity3d
4.3的动画系统。
首先,我们要明确知道的一点是Unity3d
是逐步的将老的动画系统删除,取而代之的是新的动画系统叫做Mecanim。所以就会出现变来变去,越变越不好用的情况,不过等到Unity3d把旧版动画系统完全删除的时候,一个崭新的动画系统就会展现在我们眼前,期待是这样吧。
(以下内容均为特效师应用到的动画部分,不做专业动画师参考,如有错误请您联系我,我来修改)
我们要解决的问题:
一.为什么会自动创建Animator文件,Animator文件和 Animation文件有什么区别。
二.为什么我创建的动画在循环播放,怎么才能只播放一次。
三.怎么才能把创建的动画重复利用。
四.MAX导出的动画为什么不能修改,即便能修改为什么不能K材质的同明度。
解决一.话说4.3之前我们要为一个元素添加动画是不会产生 Animator文件 的,但是4.3创建动画后会自动创建一个这样的文件
,那么她是什么意思呢?答 Animator文件 是指 :动画控制器
动画控制器通过动画层中的动画状态机,还有被参数控制的混合树来控制动画。同一个Animator
Controller可以被多个模型使用Animator 组件引用。
那Animation在4.3之前创建是会直接显示到你的参数面板的
她是什么意思呢?答 动画剪辑
可以用于角色或者简单动画的动画数据。它是动作的简单“单元”,诸如(特别的实例)“空闲”,“走路”或者“跑步”。
两者的区别,打个比方,如果Animation是地球的话那么Animator就是银河系,有可能这个比喻不太恰当。
你的Animator可以包含多个Animation,这就是动画系统逐步改进的一个地方。
当你为一个元素创建一个动画时,她会直接创建一个以你当前元素名称命名的Animator文件,该文件会保存在你的Animation所保存的文件夹内。而不会像以前那样只有一个Animation文件。
当我们选中Animator时在参数面板会发现这个
东西,继续点开Open会发现我们进入了另外一个天地
好了,我们到这就结束了,因为这个东西比较复杂可以去Unity3d圣典查看对应的手册。
解决二:如何才能让动画只播放一遍,这个问题相对简单一些,不过有很多同学都找不到,首先请选中你的动画文件,当然这个动画文件叫Animation而且是在Unity3d中创建的,我们就会发现这样一个参数面板,
在我标记红色部分就是调节动画次数的位置,你可以尝试勾选或者不勾选来查看你的动画是否有变化。
解决三:如何复用之前做好的动画。在之前的版本我们会直接把做好Animation动画直接拉给元素就可以了,但是现在不行,我们需要建立一个Animator在这里
创建好之后在这样的一个参数面板中指定你的Animator文件即可。
这里需要说明一下如果你想微调复用的动画就需要进入
这个面板了。
解决四:MAX导入的动画为什么不能修改,即便能修改为什么不能K材质的同明度。我想这块是很多同学都迷茫的地方,没关系我们来一起解决。
首先一定要确认你在MAX导出的动画的正确性。
导出后我们放到Unity3d中是这样
(材质不显示就赋予一个材质,动画不动就修改下遗产动画选项,我相信你能搜到这篇文章这两个问题早就已经解决了)
他包含一个网格和一个动画文件,当然还有一个材质文件包这里就不截图了。
把test拉倒场景中
注意观察这个参数面板,发现有Animation动画模块,而没有Animator文件模块,这说明新的动画系统还没有进化完整。
好,那我们尝试修改动画ctrl+6 问题出现了
红框部分,Read-Only毛意思?就是这个动画不让我们修改,看 是可以看的 但不能动手摸。
你道高一尺我魔高一丈,复制这个叫Take 001的动画文件重起名这里我叫AAA,重新指回该元素test。
这里要注意我标记红色方框的部分,一定要按这样修改。
这次我们再ctrl+6
让Read-Only见鬼去吧,这次我们征服了Unity3d,在这里我们可以改变原有位置,旋转,缩放属性
下一步 增加颜色控制
但是可但是问题又出现了,我要的透明度呢?我想K 透明度为什么不好使?
这是啥情况?
这也许就归结为unity3d 动画系统没有完全更新好的原因吧。
不过还是那就话,你道高一尺我魔高一丈。
首先,要确认我们的材质类型是可以在Unity3d动画系统中调节颜色和透明度的,那我说可以调节的有哪些:
通常的粒子叠加模式是可以的.....等。不可以的就是手游粒子部分,他们是不被支持。所以我们就大胆的尝试所有shader方式吧。
一..我们用粒子ADD方式的shader。
二..我们要建立一个空集 ctrl+shift+n(坐标归0)
三..把test拉给这个空集
四..为这个空集建立动画
五..K这个空集材质的帧
好了,此处应该有掌声。<img TYPE="face" src="/blog7style/images/common/sg_trans.gif" real_src ="/uc/myshow/blog/misc/gif/E___6724EN00SIGG.gif"
ALT="解决Unity3d&4.3&动画系统带来的烦恼"
TITLE="解决Unity3d&4.3&动画系统带来的烦恼" /><img TYPE="face" src="/blog7style/images/common/sg_trans.gif" real_src ="/uc/myshow/blog/misc/gif/E___6724EN00SIGG.gif"
ALT="解决Unity3d&4.3&动画系统带来的烦恼"
TITLE="解决Unity3d&4.3&动画系统带来的烦恼" /><img TYPE="face" src="/blog7style/images/common/sg_trans.gif" real_src ="/uc/myshow/blog/misc/gif/E___6724EN00SIGG.gif"
ALT="解决Unity3d&4.3&动画系统带来的烦恼"
TITLE="解决Unity3d&4.3&动画系统带来的烦恼" /><img TYPE="face" src="/blog7style/images/common/sg_trans.gif" real_src ="/uc/myshow/blog/misc/gif/E___6724EN00SIGG.gif"
ALT="解决Unity3d&4.3&动画系统带来的烦恼"
TITLE="解决Unity3d&4.3&动画系统带来的烦恼" /><img TYPE="face" src="/blog7style/images/common/sg_trans.gif" real_src ="/uc/myshow/blog/misc/gif/E___6724EN00SIGG.gif"
ALT="解决Unity3d&4.3&动画系统带来的烦恼"
TITLE="解决Unity3d&4.3&动画系统带来的烦恼" /><img TYPE="face" src="/blog7style/images/common/sg_trans.gif" real_src ="/uc/myshow/blog/misc/gif/E___6724EN00SIGG.gif"
ALT="解决Unity3d&4.3&动画系统带来的烦恼"
TITLE="解决Unity3d&4.3&动画系统带来的烦恼" /><img TYPE="face" src="/blog7style/images/common/sg_trans.gif" real_src ="/uc/myshow/blog/misc/gif/E___6724EN00SIGG.gif"
ALT="解决Unity3d&4.3&动画系统带来的烦恼"
TITLE="解决Unity3d&4.3&动画系统带来的烦恼" />
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Unity3D游戏热更新的解决方案_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:56,087贴子:
Unity3D游戏热更新的解决方案收藏
如题“Unity3D游戏热更新的解决方案”,大家都有什么好的解决方案?
unity3d千锋VR培训0元入学,先就业后付款,「申请2周免费试学」.千锋VR培训,0基础快速转行,入学即签订就业协议,「高薪」就业!现在报名立减1000元!
版本包asset不可缓存,那么比对版本号,然后确定是否更新。服务器上用新的包替换原本的assetbunde,名称一样,但是新的bundle中含新的脚本逻辑
回复 adamsw01 刚接触ios,对此问题只能抱歉。我会留意。论坛里说只能用于windows。所以这个人用python或者js[$1]Have you looked at the asset store? I think one guy implemented something like this, but it only works on Windows. It would be awesome if you could make it works on both Windos and Mac![As for usecases, I think using Lua will really help with a lot of things. Level creation is one thing for sure. Using lua files to create levels would be much easier to fix and patch the game. Instead of having to upload the whole big executable file, we can upload the fixed lua files.I need a solution that works on both Mac and PC, so I'm currently using the python one on asset store, and the javascript with Jurassic Engine.
预物体上的脚本、用代码加上去、不过要是有public 的属性就有点繁琐了
如果pc客户端的话是有解决办法的1、代码全部写成dll2、更新dll文件就可以达到热更新代码3、更新其他资源包
最好的Unity3D热更新脚本,没有之一C#Lite
火星时代unity3d,争当游戏大触,月薪过万小意思,手绘技能,概念设计,商业应用一步到位,你与u3d游戏特效设计师只差一步,赶快点击吧!
推荐去看看李总的C#LITE, 非常强大
ulua或者c#light,都支持热更新
JS热更新方案支持:1) 开发时用C#,发布时一键转换成JS,也可以直接写JS2) 更新时仍然支持拖拽public变量,结构体,数组3) 与强大的 SharpKit.net 配合,无缝转换C#4) 支持泛型5) 支持继承关系6) 支持任意 delegate7) 支持几乎所有的 C# 语法
还是基于lua 的热更新方案靠谱。下面是一个全新框架
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!}

我要回帖

更多关于 unity3d.com 的文章

更多推荐

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

点击添加站长微信