Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 移动到旋转方向[2D][Unity]_C#_Unity3d - Fatal编程技术网

C# 移动到旋转方向[2D][Unity]

C# 移动到旋转方向[2D][Unity],c#,unity3d,C#,Unity3d,我有一只羊正朝着随机的方向旋转。问题是如何使它一直沿旋转方向移动(旋转每5秒改变一次)。 这是我的密码: using UnityEngine; public class Sheep : MonoBehaviour { private float SheepMovementSpeed = 30f; void Start() { InvokeRepeating("SheepRandomRotate", Random.Range(3f, 4.9f), 5f);

我有一只羊正朝着随机的方向旋转。问题是如何使它一直沿旋转方向移动(旋转每5秒改变一次)。 这是我的密码:

using UnityEngine;

public class Sheep : MonoBehaviour
{
    private float SheepMovementSpeed = 30f;
    void Start()
    {
        InvokeRepeating("SheepRandomRotate", Random.Range(3f, 4.9f), 5f);
    }

    void Update()
    {

    }

    public void SheepRandomRotate ()
    {
        var dir = new Vector2(Random.Range(-10, 10), Random.Range(-10, 10));
        var angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
        transform.rotation = Quaternion.AngleAxis(angle + 90, Vector3.forward);
    }
}

有什么想法吗?

使用与旋转时相同的矢量3.forward

transform.position += (Vector3.forward * Time.deltaTime * speed);
更新中 transform.up相对于旋转向上。因此,如果相机是朝前的,那应该适合你的精灵。
transform.Translate(transform.up*Time.deltaTime*SheepMovementSpeed)

是,或在FixedUpdatetransform.position+=(Vector3.forward*Time.deltaTime*SheepMovementSpeed);请帮助:(顺便说一句,它是二维的。尝试transform.Translate(Vector3.up*Time.deltaTime*SheepMovementSpeed)transform.Translate(SheepMovementSpeed*Time.deltaTime,SheepMovementSpeed*Time.deltaTime,0);这会移动绵羊,但方向错误