【 unity3d 】Vector3.Lerp()方法的理解

1:lerp方法声明,传入两个向量对象,第三个参数为间断值(几分之几,范围是0-1),返回一个计算后得到向量

2:具体计算得到返回值也就是 a + (b - a) * t

Vector3是个结构体类型,他们计算方式是分别根据 x , y , z进行相应计算的 。

这里列出Vector3的运算符重载

 

3:每次返回的值都是从a到b的某段距离

如:t = 0.1 也就是返回其a到b距离中的10分之1

可以在 update LateUpdate FixUpdate 方法里使用,造成拖拉移动缓动的效果

4:例子:

相机跟随玩家物体移动

脚本放在相机物体里

using UnityEngine;
using System.Collections;

public class CameraCs : MonoBehaviour {

	public float _DposZ = 4f;
	public float _DposY = 6f;
	public float _Dumping = 5f;
	Transform target;

	void Start () {
		if (target == null)
			target = GameObject.Find ("Yellowor2").transform;
	}

	void Update () {
	
	}

	void LateUpdate(){
		Vector3 newPosition = target.position - target.forward * _DposZ + new Vector3 (0, _DposY, 0);
		//防止卡顿所以要*deltaTime移动
		transform.position = Vector3.Lerp (transform.position, newPosition,_Dumping*Time.deltaTime );
		//为了防止相机抖动,放在设置位置的后边。
		transform.LookAt (target);	
	}
}

5、相应的还有

Color.Lerp()

Mathf.Lerp()

它们的原理都大致相同,只是该变的值类型不同

 

  • 17
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值