序列化探索 颜色随机渐变 Lerp(插值) 渲染组件 unity笔记19
https://forum.unity.com/threads/when-to-use-serializefield-and-why.184687/
[SerializeField]
有的人说是为了在inspector中显示私有变量 但有人又说为什么不直接用公有变量
有些人说是为了存储在硬盘上
颜色随机渐变
看到一种平滑改变的办法
Color.Lerp
组件Renderer 与 MeshRenderer的区别 似乎左边的是所有渲染组件的集合类型
public MeshRenderer r1;
void Update(){r1.material.color = Color.Lerp(,,);}
public Renderer r2;
void Update(){r2.material.color = Color.Lerp(, , );}
Color的其中4个基本属性 .r.g.b.a
Color可以像Vector3一样new (初始化);但float这种不行 List< float >可以
一起赋值 float[] a = { 9, 3, 7, 2 };
void start(){Color b = GetComponent<MeshRenderer>().material.color;b.a = 0.2f;GetComponent<MeshRenderer>().material.color=b;}
可以覆盖赋值 还要赋值左边回组件
void start(){GetComponent<MeshRenderer>().material.color= new Color(0.5f, 1.0f, 0.3f, 0.4f); }
Color值是百分比数 1=255
Color.Lerp
public MeshRenderer r3;
private Material m1;
void Update(){material1.color = Color.Lerp(起始色, 目标色, 0-1的浮点值);}
位移 缩放 都可以用 transform.position
Vector3.Lerp
可以直接写(有人把这写在协程里)
void Update(){transform.position = Vector3.Lerp(起始v3, 目标v3, 0-1的浮点值);
transform.localScale = Vector3.Lerp(起始v3, 目标v3, 0-1的浮点值);}
旋转有两种
Quaternion.Lerp
void Update(){transform.rotation = Quaternion.Lerp(起始四元数 或者 物体1.rotation,
目标四元数 或者 物体2.rotation, 0-1的浮点值);}
Quaternion.Slerp
void Update(){transform.rotation = Quaternion.Slerp(起始四元数 或者 物体1.rotation,
目标四元数 或者 物体2.rotation, 0-1的浮点值);}
区别是
179 - 0度
浮点值0到1时 为0时相同 为0.25(lerp 142;slerp 134) 为0.49时 (lerp 92;slerp 91) 0.51(lerp 87;slerp 88) 为0.75时(lerp 37;slerp 45) 为1时相同
浮点值1到0时 0.75时(lerp 35;slerp 43) 为0.49时 (lerp 92;slerp 91)
Mathf.Lerp
格式
Mathf.Lerp(起始浮点值, 目标浮点值,0-1的浮点值)
任何浮点值都可以写成这个(套个mathf.lerp方法)
插值与起始目标值范围
以下都是mathf.lerp套(color.lerp(或者transform.position = Vector3.Lerp)的插值)的情况
插值(第三个值)虽然声称不可以大于1 虽然Vector3有LerpUnclamped,四元数有LerpUnclamped SlerpUnclamped这种大于1的方法 没有使用 并使插值大于1 但unity并没有报错 大于1时效果和1相同
试了下 colorl.lerp和transform.position = Vector3.Lerp 插值为无穷大 效果和1一样
起始位置和目标位置相同 连续2次 可以正常工作
插值为0时无叠加值 插值可以等于0和1
可以为任何值[0-1]甚至无限大(分子不为0分母为0时值代表无限大 , 分子为0分母为0时值为NaN
插值为NaN时会让该lerp语句失效 更新值也不行)
结束条件法1 插值的叠加值和>0.9f左右 而不是写 ==1
lerp方法是帧执行 不会使插值初值改变(除非设了与时间相关) 初值不与时间相关时会从叠加值发现 插值的帧叠加值会越来越小
比如说插值为0.02 第一帧叠加值和为0.02 第二帧叠加值和为0.0396 那第二帧的叠加值为0.0196 最终叠加值和为1 但是会非常非常慢(需要帧会很多) 当插值为0.9时很快
最重要的color.lerp和transform.position = Vector3.Lerp的结束条件:
对于color.lerp 只建议 :color.lerp外再套个mathf.lerp,插值建议都乘个Time.deltaTime,mathf的插值叠加值和>0.9f,变换方法写在>0.9f里面
对于transform.position = Vector3.Lerp 法1:和color.lerp一样 ;法2:与目标位置距离<1 或者0.1f (看情况)时 变换
线性颜色空间和伽马颜色空间
好像DOTween也可以做这种效果
r2.material.color参考
https://gameinstitute.qq.com/community/detail/122672
https://blog.csdn.net/qq_37359183/article/details/106697245
序列化探索 颜色随机渐变 Lerp(插值) 渲染组件 unity笔记19相关推荐
- V3.magnitude,万向锁探索 协程,invoke归纳 for循环复习 unity笔记46
求模 (v3都是大写首字母 没看到小写的) 速度也是v3 也可以求模 至于是不是四元数 考不考虑万向锁 还有归一化到底要不要管万向锁 不知道 反正归一化用的时候没看到他们转成四元数 当时只有旋转ler ...
- Android有关于文字颜色的渐变
先放张效果图镇楼 直接进入正题 实现文字的渐变效果其实很简单 LinearGradient linearGradient = new LinearGradient(0, 0, 0, textview. ...
- python随机颜色数字_python颜色随机生成器的实例代码
1. 代码: def random_color(number=number): color = [] intnum = [str(x) for x in np.arange(10)] #Out[138 ...
- java图形界面颜色随机变换,JavaScript实现鼠标移入随机变换颜色
大家好! 今天分享一个在 JavaScript中,实现一个鼠标移入可以随机变换颜色. /* 这里定义一下div(块元素)已下span 标签的宽.高.边框线以及边框线的颜色*/ span{ displa ...
- 在线十六进制颜色随机生成器
在线十六进制颜色随机生成器 在线十六进制颜色随机生成器 https://tooltt.com/color-generator/
- c语言颜色代码渐变色,Arduino中LED灯实现256中颜色的渐变
根据颜色由三原色组成,根据其混成比例编写了此代码,实现了356种颜色的渐变过程: //colort test; const int red = 9; const int green =10; cons ...
- [安卓开发]弹幕滚幕效果自定义View之BarrageView|支持点击事件|隐藏不滞留|颜色随机|大小速度范围随机
安卓弹幕滚幕效果自定义View之BarrageView|支持点击事件|隐藏不滞留|颜色随机|大小速度范围随机 1.简介 项目地址: https://github.com/tpnet/BarrageVi ...
- python画图颜色随机_用python画随机颜色随机大小随机位置的正方形
1 ''' 2 作者:唐梓文3 版本:1.04 日期:08/05/20205 功能:随机的在画布画多个正方形,并涂色6 7 ''' 8 9 importturtle10 importrandom11 ...
- ggplot绘制带误差棒、置信区间的柱状图,并调整颜色为渐变
ggplot绘制带误差棒.置信区间的柱状图,并调整颜色为渐变 简单绘制柱状图 控制柱状宽度,间距 调整颜色渐变 简单绘制柱状图 要在ggplot中绘制带有置信区间的柱状图,你可以使用geom_bar和 ...
最新文章
- windows 启用远程服务
- 在text html模版中写js,如何利用模板将HTML从JavaScript中抽离
- PHP如何保存当前用户
- matlab入门4-mdlInitializeSizes解析
- java 边界_Java泛型中的上下边界的理解
- IEEE 1588 报文封装
- mysql repaire_mysql 修复表
- 学习Axure RP原型设计
- IP被封检测和端口被封检测方法分享
- mysql查询范围数据_MySQL通过POIN数据类型查询指定范围内数据
- 基于php+mysql的 医院病房管理系统
- 微信小程序中的用户ID(包括openid和unionid)
- FlashFXP命令行
- Application.streamingAssetsPath在android和ios和pc上的读取
- oracle查看服务器的时间,Oracle如何获取系统当前时间等操作实例
- allegro cadence bubble 灰色不可用
- 两个很不错的网址导航大全
- PPT之ppt设计选项卡
- 小猿君的面试细节课堂(第二节)
- 终端切换python环境_mac命令行切换python版本