沿对象方向移动对象? C#

时间:2016-10-01 17:38:24

标签: c# unity3d move

有这样的问题,但我在C#中找不到任何答案,所以这是我的问题:我想在一个对象的方向(在Unity 5中)旋转它面向的方向。我目前有这个代码来旋转我的播放器。

using UnityEngine;                                                       
using System.Collections;

public class Movement : MonoBehaviour
{
    private bool isLeft = false;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            if (isLeft == false)
            {
                transform.rotation = Quaternion.Euler(90, 45,0);
                isLeft = true;
                Debug.Log("Turned Right");
            }
            else
            {
                transform.rotation = Quaternion.Euler(90, -45, 0);
                Debug.Log("Turned Left");
                isLeft = false;
            }
      }
}

2 个答案:

答案 0 :(得分:1)

虽然你的问题和描述有点含糊不清,但似乎你想沿着它面向的方向移动箭头,这是正确的吗?

确保游戏对象中的箭头指向前方。通过选择场景中的游戏对象,您可以看到前方是什么。向前将是蓝色箭头。

现在在代码中,为了向这个方向移动它,你可以用许多不同的方式移动它。施加力/平移/设定位置。我建议你尝试一下,看看外观和感觉最好。简单地改变它的立场:

add_filter( 'gettext', 'removing_specific_text_in_categories_page_titles', 10, 2 );
function removing_specific_text_in_categories_page_titles( $translated_text, $untranslated_text )
{
    if ( 'Archive of :' == $untranslated_text ) {
        $translated_text = '';
    }
    return $translated_text;
}

移动速度是浮点数,用于描述移动速度。如果将此代码放在Update()中,则需要Time.deltaTime。

答案 1 :(得分:0)

确定完全编辑答案,所以你有一个箭头,无论你想要它朝向你想要的方向移动它所面对的方向,当玩家点击它时它会转动45度。

简单的部分是转动它,基本上你会调用onclick()函数或在对象上设置碰撞器并写下一个简短的片段检查,当鼠标单击它时它等于你的arrow.name或collider。如果是这样,为Vector3设置一个新变量来存储新的旋转,只需将45添加到对象旋转,并将游戏对象的新旋转设置为等于新的旋转变量。