关于animation:关于Addressable打包图集与图片都打进去造成冗余
1)对于Addressable打包图集与图片都打进去造成冗余2)Unity如何计算Root动画旋转3)IL2CPP编译的Protobuf反射类运行时报空4)为什么Active Constraints会呈现过高的景象 这是第337篇UWA技术常识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地把握和学习。 UWA社区主页:community.uwa4d.comUWA QQ群:465082844 AddressableQ:对于Addressable打包图集与图片都打进去造成冗余。 Unity版本:2021.2.13f1c1Addressable版本:1.19.16(cn版本) 应用的是Addressable的默认Group,场景中只应用了decal3的UI图片,然而打包最初的资源,Addressable的包中蕴含了两个资源,失常应该只有图集资源才对(如下图)。 另外,看了Addressable打包流程的代码,Unity把关联的图片退出依赖打包列表,然而又在之后对图片检测做了生成图集的解决。原生打包不会对图集里的图片再做解决吗? A:能够切换com.unity.ScriptableBuildPipeline版本到1.21.5试试看,1.21.5修复的问题应该包含这个。更新日志:https://docs.unity3d.com/Packages/com.unity.scriptablebuildpi...感激liuxianfeng@UWA问答社区提供了答复 AnimationQ:想理解Unity的RootMotion的实现细节,请问Unity是怎么计算Root动画旋转的? 一个动画,如果配置正确,AnimationClip里会多两段曲线数据,RootT、RootQ别离是根节点的位移和旋转信息。然而当我用Animator跑起来后,咱们每帧RootMotion旋转多少,Root节点逆向旋转多少,是怎么计算出来的呢? 奢侈的想法是:旋转以后帧的RootQ绝对于第0帧RootQ的旋转的eulerAngles.y。然而通过我屡次测试,并不是这个值,而是有偏差的一个值。有时候多几度,有时候少几度。 没有Unity源码的状况下,很难晓得它的计算方法。我去看了Godot,其办法是失常把以后旋转和第0帧做差值。 比方这个动画,我曾经把数据删得差不多了。第1帧,Animator认为应该转24.068,这两个旋转的欧拉角示意别离是(277.77, 66.96, 81.36) 、(279.53, 74.28, 100.03),from to旋转的欧拉角是(3.29, 25.78, 0.02) 。这个25.78和24差得不多,然而总归不一样。其余测试数据相似,都是差一点。 A:对于旋转的计算,Unity应用了四元数(Quaternions)来示意旋转。旋转的差别可能是因为以下起因之一导致的: 欧拉角(Euler angles)转换为四元数的过程中可能存在精度损失。欧拉角存在万向锁问题和旋转程序问题,这可能导致从欧拉角转换为四元数时呈现不精确的后果。根节点旋转的计算可能受到其余因素的影响,例如动画过程中的插值算法、关键帧的设置、平滑过渡等。这些因素可能会导致计算结果与冀望的差别。感激NG週@UWA问答社区提供了答复 ScriptQ:IL2CPP编译的Protobuf反射类运行时报空,问题产生时,会闪崩,闪崩日志信息:ErrorNotNull:"c# exception:System.TypeInitializationException: The type initializer for 'abcConfigReflection' threw an exception. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ExecutionEngineException: Attempting to call method 'Google.Protobuf.Reflection.ReflectionUtil+ReflectionHelper`2[[System.IntPtr&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]::.ctor' for which no ahead of time (AOT) code was generated.n ...