返回介绍

Material.Lerp 插值

发布于 2019-12-18 15:37:58 字数 2331 浏览 1094 评论 0 收藏 0

JavaScript => public function Lerp(start: Material, end: Material, t: float): void;
C# => public void Lerp(Material start, Material end, float t);

Description 描述

Interpolate properties between two materials.

在两个材质之间插值

Makes all color and float values of a material be interpolated from start to end, based on t.
给一个材质所有颜色和浮点值作一个插值,从差值开始到结束都基于时间t。

When t is 0, all values are taken from start.
时间t 为 0时,所有值为开始。

When t is 1, all values are taken from end.
时间t 为 1时,所有值为结束。

Most often you want the materials that are interpolated between to be the same (use the same shaders and textures) except for colors and floats. Then you use Lerp to blend between them.

通常,您想要差值的两个材质是相同的(使用相同的着色器和纹理) 除了颜色和浮点数。然后您可以使用 Lerp 做它们之间的混合。

JavaScript:

// Blends between two materials
 
var material1 : Material;
var material2 : Material;
var duration = 2.0;
var rend: Renderer;
 
 
function Start () {
	rend = GetComponent.<Renderer>();
 
	// At start, use the first material
	rend.material = material1;
}
 
 
function Update () {
	// ping-pong between the materials over the duration
	var lerp : float = Mathf.PingPong(Time.time, duration) / duration;
	rend.material.Lerp(material1, material2, lerp);
}

C#:

using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {
    public Material material1;
    public Material material2;
    public float duration = 2.0F;
    public Renderer rend;
    void Start() {
        rend = GetComponent<Renderer>();
        rend.material = material1;
    }
    void Update() {
        float lerp = Mathf.PingPong(Time.time, duration) / duration;
        rend.material.Lerp(material1, material2, lerp);
    }
}

Material

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文