转换到一定距离然后旋转并返回到x轴上的先前位置

时间:2013-08-29 09:34:04

标签: rotation unity3d

我正在考虑放置图像的平面,我希望这个平面沿x轴移动。我的问题是,当我点击平面时,它应该移动到一定距离,然后翻转或旋转平面和旋转后它应该移回原来的位置。例如:如果图像是玩具我想让玩具向左移动5个单位,那么玩具的图像应该旋转到180然后再移回5个单位到右边的原始位置,这个过程应该发生在我点击飞机/图像时。我是编程和团结的新手,所以我无知我应该怎么做?有什么想法吗?请让我知道。

有没有更简单的方法呢????

var moveforward;
function Start(){
moveforward = false;
}
function Update(){
if(moveforward)
forwardmovement();
 else if(!moveforward)
 backwardmovement();
 }
   function forwardmovement(){
   transform.position.x += 1 * Time.deltaTime;
   yield WaitForSeconds(1);
   moveforward = false;
   }
  function backwardmovement(){
  transform.position.x -= 1 * Time.deltaTime;;
  yield WaitForSeconds(1);
  moveforward = true;
   }

这让我的图像沿x轴移动但是在它达到1个单位后我想让它旋转然后将-1个单位移回原来的位置。(我做错了吗?)

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您可以使用Vector3.Lerp来实现此目的。 Lerp可以顺利移动物体。请注意,输入具有from和to位置。只需在to-Vector3的x轴上添加5即可。

至于旋转,请使用Quaternion.Lerp。这将平滑地旋转您的对象。完成此操作后,再次使用Vector3.Lerp将其移回。

您说要通过单击对象来实现此目的。您可以按Input.GetButtonDown("Fire1")获取点击次数。只需使用“Camera.main.ScreenPointToRay(Input.mousePosition);”。有了它,你可以检查RayCast是否有什么东西以及该对象的名称是什么。如果是玩具,请移动玩具。