我怎样左右移动一个圆柱体?

本文关键字:一个 圆柱体 左右 移动 | 更新日期: 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"。