网站模版怎么上传到空间,莱芜免费发布信息网,哪里有响应式网站企业,seo优化6个实用技巧可能很多人会用到Verctor3.Lerp、Mathf.LerpUnclamped等等 这种其实不是匀速 看一下这个整体差不多的逻辑 public static float Lerp(float a, float b, float t){return a (b - a) * t;};这个逻辑就是#xff0c;从a值到b值#xff0c;返回一个a值加#xff08;b值-a值 (b - a) * t;};这个逻辑就是从a值到b值返回一个a值加b值-a值百分比t的值给你。。。写完发现有点白给。 如果不理解我举个例子 我在原点出发我坐标是a 0我要去 b 10米的地方终点 t值是1 代入公式 (b - a) * t 《转换到右边》 10-0*1 10米 然后就是 a (b - a) *t 《转换到右边》 010 10米
结果返回10 b我瞬移到了终点(结束)t值是0.5f 代入公式 (b - a) *t 《转换到右边》10-0*0.5f 5米 然后就是 a (b - a) *t 《转换到右边》 05 5米 结果返回5 ! b此时我的a变成5,第二帧继续下面为什么a变成5不知道的翻到最底下的扩展 代入公式 (b - a) *t 《转换到右边》10-5*0.5f 2.5米 然后就是 a (b - a) *t 《转换到右边》 52.5 7.5米 结果返回7.5 ! b此时我的a变成7.5,第三帧继续下面 代入公式 (b - a) *t 《转换到右边》10-7.5*0.5f 1.25米 然后就是 a (b - a) *t 《转换到右边》 7.51.25 8.75米 结果返回8.75 ! b此时我的a变成8.75,第四帧继续a会一直逼近b10的值 这能理解了吧如果还不能理解就再看多几遍 如果还看多几遍还看不懂就评论区告诉我哦 ^ _ ^ (你敢我四十米的) t值是0 代入公式 (b - a) *t 《转换到右边》10-0*0 0米 得到的永远是0所以不会变化
扩展为什么a变成5,你可以理解成是一个迭代的方法如下 public void Lerp(ref float a, float b, float t){a a (b - a) * t;if(a!b){Lerp(ref a,b,t);}}好了学了上面这个的Lerp的原理我们就可以吃正餐了
实现匀速变化值的方法或者匀速移动的方法 1、自己写一个协程定义个时间或者每次变化的插值 2、用dotween我就是为了讲这个 这个是官方的方法如果不会可以参照我下面的代码 我用DOTween.To(() myFloat, x myFloat x, 52, 1);来做实战例子 RightBtn.onClick.AddListener(() {if (CurrentPage 0){CurrentPage--;//页数我这里做的是一个匀速翻页的功能targetNormalizedPosition CurrentPage / (Pages - 1f);//目标点DOTween.To(() scrollrect.horizontalNormalizedPosition, x {scrollrect.horizontalNormalizedPosition x;//这里将x的值 赋值 到我要移动的scrollrect组件 的坐标上}, targetNormalizedPosition, 1);}});对比DOTween.To(() myFloat, x {myFloat x}, 52, 1); 简化DOTween.To(() 目标值, x {实现逻辑}, 终值, 时间);
还有不理解在评论区说一下哦