- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Unity3D中的线性插值Lerp()函数解析
在 unity3d中经常用线性插值函数Lerp()来在两者之间插值,两者之间可以是两个材质之间、两个向量之间、两个浮点数之间、两个颜色之间,其函数原型如下:
1. Material.Lerp 插值
function Lerp(start : Material, end : Material, t : float) : void
在两个材质之间插值
?
2. Vector2.Lerp 插值
static functionLerp (from : Vector2, to : Vector2, t : float) : Vector2
两个向量之间的线性插值。按照数字t在form到to之间插值。
t是夹在0到1之间。当t=0时,返回from。当t=1时,返回to。当t=0.5时放回from和to之间的平均数。
3. Vector3.Lerp 插值
static functionLerp (from :? Vector3, to : Vector3, t : float) : Vector3
两个向量之间的线性插值。按照数字t在from到to之间插值。
4. Vector4.Lerp 插值
static functionLerp (from : Vector4, to : Vector4, t : float) : Vector4
两个向量之间的线形插值。按照数字t在from到to之间插值。t是夹在[0...1]之间的值。,当t = 0时,返回from。当t = 1时,返回to。当t = 0.5 返回from和to的平均数。
?
5. Mathf.Lerp 插值
static functionLerp (from : float, to : float, t : float) : float
基于浮点数t返回a到b之间的插值,t限制在0~1之间。当t = 0返回from,当t = 1 返回to。当t = 0.5 返回from和to的平均值。
?
6. Color.Lerp 插值
static functionLerp (a : Color, b : Color, t : float) : Color
通过t在颜色a和b之间插值。
t是夹在0到1之间的值。当t是0时返回颜色a。当t是1时返回颜色b。
?
插值,从字面意思上看,就是在其间插入一个数值,这种理解是否正确呢?我们先从最简单的浮点数插值函数来分析:
Mathf.Lerp 插值
static functionLerp (from : float, to : float, t : float) : float
基于浮点数t返回a到b之间的插值,t限制在0~1之间。当t = 0返回from,当t = 1 返回to。当t = 0.5 返回from和to的平均值。
?
首先,我们来做一个试验,启动Unity3D,任建一个脚本文件,在其Start()中输入内容如下:
void?Start () {
??????? print(Mathf.Lerp(0.0f, 100.0f,0.0f).ToString());
??????? print(Mathf.Lerp(0.0f, 100.0f,0.1f).ToString());
??????? print(Mathf.Lerp(0.0f, 100.0f,0.2f).ToString());
??????? print(Mathf.Lerp(0.0f, 100.0f,0.3f).ToString());
??????? print(Mathf.Lerp(0.0f, 100.0f,0.4f).ToString());
??????? print(Mathf.Lerp(0.0f, 100.0f,0.5f).ToString());
??????? print(Mathf.Lerp(0.0f, 100.0f,0.6f).ToString());
??????? print(Mathf.Lerp(0.0f, 100.0f,0.7f).ToString());
??????? print(Mathf.Lerp(0.0f, 100.0f,0.8f).ToString());
??????? print(Mathf.Lerp(0.0f, 100.0f,0.9f).ToString());
??????? print(Mathf.Lerp(0.0f, 100.0f,1.0f).ToString());
??? }
运行Unity,在控制台将打印出:
? ? ? ?这个实验是在0到100之间插值,插入什么值,取决于第3个参数,从打印结果可看出,第3个参数是个比例因数,是0.
您可能关注的文档
- 物流成本分析技术 物流成本控制 成本会计实训资料2.doc
- 物流基础 物流基础 传化控股王进纵论供应链变革新趋势.docx
- 物流基础 物流基础 物流行业亿元融资时代来了,钱少了牌桌你都上不去!.docx
- 物流统计与成本分析 物流统计概述 国家邮政局公布2019年一季度邮政行业运行情况.docx
- 物流信息技术 物流信息技术 20 农业物流-耕地质量保护大数据平台建设解决方案.docx
- 物业管理理论与实务 项目二:物业管理的起源和历史沿革 1.2.3 知识链接:2018中国物业服务百强企业研究分析报告.docx
- 虾蟹增养殖技术 南美白对虾养殖、项目二 对虾类养殖技术 模块二 项目二 南美白对虾养殖生产设计.doc
- 虾蟹增养殖技术 南美白对虾养殖、项目二 对虾类养殖技术 模块二 项目二 南美白对虾养殖学习任务单.doc
- 虾蟹增养殖技术 虾蟹增养殖技术 模块二 项目三 日本囊对虾养殖学习任务单.doc
- 虾蟹增养殖技术 项目二 对虾类养殖技术、中国明对虾生物学习性 模块二 项目一 中国明对虾养殖生产设计.doc
- 虚拟现实程序设计基础 虚拟现实程序设计基础 Unity3D最全碰撞总结.docx
- 虚拟现实图形图像技术 视频帧捕捉 视频帧捕捉.docx
- 学前儿童艺术教育 幼儿园集体音乐教学活动教案 大班歌唱活动《猴子》.doc
- 学生竞赛培训 1基本技能训练培训项目 4项目四 印制电路板设计与制作技能训练.doc
- 学生竞赛培训 10 扩展竞赛项目电脑鼠 2-2010年天津市职业院校技能大赛规则.doc
- 学习中心 竖曲线放样 竖曲线放样-指导书.docx
- 学习中心 围护桩(墙)深层水平位移监测 围护桩(墙)深层水平位移监测任务书指导书.doc
- 研究与创新中心 获奖论文 通过Kà秀感悟舞台技术在现代演出中的角色.docx
- 养牛与牛病防制1 养牛与牛病防制1 35牛棘球蚴病.doc
- 养猪与猪病防制 任务2保育仔猪疾病 175猪传染性胃肠炎与流行性腹泻教案.doc
文档评论(0)