物体移动 u3d学习总结笔记本

目录

1.Transform移动

2.Rigidbody移动

3通用


//==============================================

1.Transform移动===================================


Translate()
//轴移动

物体以relativeTo(Fighter.transform)为参照系,沿着translation运动|translation|的距离。如果relativeTo缺省将

以Space.Self为默认值。//恒速移动

transform.Translate(Vector3.forward * ShootSpeed * Time.deltaTime, Fighter.transform);

返回目录

2.Rigidbody移动====================================

velocity()

这种方法只能适用于刚体,因为velocity是刚体特有的属性。//改速度移动

  gameObject.GetComponent<Rigidbody>().velocity = Vector3.forward * MoveSpeed;

MovePosition()
//让物体移动到新的位置position。//恒速移动
//适用于频繁改变,推荐使用这种,较为平滑

rb.MovePosition(transform.position + transform.forward * Time.deltaTime);

AddForce()

playerRgd.AddForce(dir*force);//方向与力道
//给刚体增加一个力。//炮弹加速

playerRgd.AddRelativeForce(dir*force);
//添加一个力到刚体。相对于本地坐标。

返回目录

3通用====================================

Vector3.MoveTowards()

//向着目标点target,恒速移动

transform.position = Vector3.MoveTowards(transform.position, target, MoveSpeed * Time.deltaTime);

//Rigidbody.position
     

Vector3.Lerp()

//控制物体向Target移动,插值移动

gameObject.transform.localPosition = Vector3.Lerp(transform.position, Target, MoveSpeed * Time.deltaTime);

// position是世界坐标中的位置,可以理解为绝对坐标 
// localPosition是相对于父对象的位置,是相对坐标,我们在transform栏看到的是相对坐标 
// 如果对象是一级对象,position和localPosition是相同的
    

Vector3.SmoothDamp()

//此方法一般用于摄像机的平滑移动。

transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref velocity, smoothTime);
//Rigidbody.position
    

返回目录

猜你喜欢

转载自blog.csdn.net/qq_40346899/article/details/82707052
今日推荐