您的位置:首页 > 移动开发 > Unity3D

unity物体移动三种方式之——AddForceAtPosition(一)

2018-02-08 11:47 603 查看
  上次说了物体移动的三种方式中的Transform.Translate,今天我们来说说另外一种方式——AddForceAtPosition()。这种方式是通过给物体目标方向上的一个力,让物体运动,就好比你投篮,给了篮球一个朝向球篮方向的力。

  效果如图:



  代码如下:

if(Input.GetMouseButton(0))
{

Ray ray =  Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;

if(Physics.Raycast(ray, out hit))
{

if(hit.collider.name =="Cube")
{
Vector3 direction = hit.transform.position - obj.transform.position;
//发射炮弹
obj.GetComponent<Rigidbody>().AddForceAtPosition(direction,   hit.transform.position,ForceMode.Impulse);
}
}
}


  带注释的那一句,就是给小球在hit.transform.position位置上施加一个direction大小的forceMode.Impulse方式的力

  函数的官方解释:

public void AddForceAtPosition(Vector3 force, Vector3 position, ForceMode mode = ForceMode.Force);


  其中三个参数:

  Vector3 force:力(矢量)

  Vector3 position:施加力的位置

  ForceMode mode :力的方式

  额额,差不多就是这样,对于这里函数的使用,大概就是这样,但是在游戏中如果追求更好的模拟真实场景中的效果,大家还是要多多练习,没有实际练习过,你是想象不出效果来的。

  AddForceAtPosition()官方文档链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity 移动 刚体