我怎样左右移动一个圆柱体?
本文关键字:一个 圆柱体 左右 移动 | 更新日期: 2023-09-27 18:16:10
在两点之间或仅向左或仅向右。
在这段代码中,我旋转圆柱体,但我不能将它移动到两侧:
using UnityEngine;
using System.Collections;
public class MakeTwoPoints3D : MonoBehaviour
{
public float speed = 10f;
public float delta = 15.5f; // Amount to move left and right from the start point
public float moveSpeed = 5.0f;
private Vector3 startPos;
void Start()
{
startPos = transform.position;
}
void Update()
{
transform.Rotate(Vector3.up, speed * Time.deltaTime);
transform.position += transform.right * Time.deltaTime * moveSpeed;
}
}
如果我做transform。它会使圆柱体在原地上下移动。如果我做变换。它会向我移动,我的意思是向前移动,但至少它会向摄像机移动。如果我做transform。再向前,它会画出圆圈,并将圆柱体上下移动成圆圈。
我想不出怎么把它移到边上。
您应该使用Vector3.right
而不是transform.right
。
void Update()
{
transform.Rotate(Vector3.up, speed * Time.deltaTime);
transform.position += Vector3.right * Time.deltaTime * moveSpeed;
}
当你使用transform.right
时,Vector3将采用该对象变换的局部旋转。意思是,如果物体绕Y轴旋转45度,你的transform.right
向量就会在一个角度上。当你旋转一个物体时,如果你一直沿着它的局部轴平移它,它就会绕一个圆运动。
另一方面,Vector3.right
总是在世界空间中,所以它总是面向"true"。