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相关推荐

  1. V3.magnitude,万向锁探索 协程,invoke归纳 for循环复习 unity笔记46

    求模 (v3都是大写首字母 没看到小写的) 速度也是v3 也可以求模 至于是不是四元数 考不考虑万向锁 还有归一化到底要不要管万向锁 不知道 反正归一化用的时候没看到他们转成四元数 当时只有旋转ler ...

  2. Android有关于文字颜色的渐变

    先放张效果图镇楼 直接进入正题 实现文字的渐变效果其实很简单 LinearGradient linearGradient = new LinearGradient(0, 0, 0, textview. ...

  3. python随机颜色数字_python颜色随机生成器的实例代码

    1. 代码: def random_color(number=number): color = [] intnum = [str(x) for x in np.arange(10)] #Out[138 ...

  4. java图形界面颜色随机变换,JavaScript实现鼠标移入随机变换颜色

    大家好! 今天分享一个在 JavaScript中,实现一个鼠标移入可以随机变换颜色. /* 这里定义一下div(块元素)已下span 标签的宽.高.边框线以及边框线的颜色*/ span{ displa ...

  5. 在线十六进制颜色随机生成器

    在线十六进制颜色随机生成器 在线十六进制颜色随机生成器 https://tooltt.com/color-generator/

  6. c语言颜色代码渐变色,Arduino中LED灯实现256中颜色的渐变

    根据颜色由三原色组成,根据其混成比例编写了此代码,实现了356种颜色的渐变过程: //colort test; const int red = 9; const int green =10; cons ...

  7. [安卓开发]弹幕滚幕效果自定义View之BarrageView|支持点击事件|隐藏不滞留|颜色随机|大小速度范围随机

    安卓弹幕滚幕效果自定义View之BarrageView|支持点击事件|隐藏不滞留|颜色随机|大小速度范围随机 1.简介 项目地址: https://github.com/tpnet/BarrageVi ...

  8. python画图颜色随机_用python画随机颜色随机大小随机位置的正方形

    1 ''' 2 作者:唐梓文3 版本:1.04 日期:08/05/20205 功能:随机的在画布画多个正方形,并涂色6 7 ''' 8 9 importturtle10 importrandom11 ...

  9. ggplot绘制带误差棒、置信区间的柱状图,并调整颜色为渐变

    ggplot绘制带误差棒.置信区间的柱状图,并调整颜色为渐变 简单绘制柱状图 控制柱状宽度,间距 调整颜色渐变 简单绘制柱状图 要在ggplot中绘制带有置信区间的柱状图,你可以使用geom_bar和 ...

最新文章

  1. windows 启用远程服务
  2. 在text html模版中写js,如何利用模板将HTML从JavaScript中抽离
  3. PHP如何保存当前用户
  4. matlab入门4-mdlInitializeSizes解析
  5. java 边界_Java泛型中的上下边界的理解
  6. IEEE 1588 报文封装
  7. mysql repaire_mysql 修复表
  8. 学习Axure RP原型设计
  9. IP被封检测和端口被封检测方法分享
  10. mysql查询范围数据_MySQL通过POIN数据类型查询指定范围内数据
  11. 基于php+mysql的 医院病房管理系统
  12. 微信小程序中的用户ID(包括openid和unionid)
  13. FlashFXP命令行
  14. Application.streamingAssetsPath在android和ios和pc上的读取
  15. oracle查看服务器的时间,Oracle如何获取系统当前时间等操作实例
  16. allegro cadence bubble 灰色不可用
  17. 两个很不错的网址导航大全
  18. PPT之ppt设计选项卡
  19. 小猿君的面试细节课堂(第二节)
  20. 终端切换python环境_mac命令行切换python版本

热门文章

  1. 控制科学与工程 计算机那个好,控制科学与工程(自动化)最好的94所大学排名
  2. 从零开始学习Qt(一)
  3. Uni-appVue完成小程序DIY装修方案经验分享
  4. 破损的键盘(悲剧的文本)Java UVa11988
  5. 3D游戏中扮演虚拟人生的角色------有人选择了Jruby的老师
  6. 2022-2028全球家具和家纺行业调研及趋势分析报告
  7. java---线程安全详解
  8. Java 基础 —— 线程安全
  9. PTA 1054 求平均值 (c++ 代码+分析)
  10. pandas之多重影分身