【问题标题】:How to rotate player model to mouse current cursor position c# unity 3D?如何将播放器模型旋转到鼠标当前光标位置c#unity 3D?
【发布时间】:2021-06-22 02:07:31
【问题描述】:

我试图让我的角色指向我的鼠标光标所在的位置,但是这不能正常工作。我已将脚本“test_1”附加到角色并使其转动,这非常棒,但它需要面对我的鼠标位置。当我在角色周围移动鼠标时,它目前只是随机旋转。我尝试将脚本附加到主摄像头,希望它能正常工作,但摄像头只是不断地绕圈翻转,因此脚本当前附加到播放器。我只是在寻找一种方法来旋转并将我的角色指向鼠标位置,同时用主摄像机(玩家视图)看一个角度。这是video。 Babo Violent 2 是一个很好的游戏参考。

我的代码:

using UnityEngine;

public class test_1 : MonoBehaviour
{
    void Update()
    {
        Vector3 vecWorldPos = Camera.main.ScreenToWorldPoint(Input.mousePosition + Vector3.forward * 10f);

        float fAngle = AngleBetweenPoints(transform.position, vecWorldPos);

        transform.rotation = Quaternion.Euler(new Vector3(0f, fAngle, 0f));
    }

    float AngleBetweenPoints(Vector2 a, Vector2 b)
    {
        return Mathf.Atan2(a.y - b.y, a.x - b.x) * Mathf.Rad2Deg;
    }
}

提前致谢!

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    尝试添加 -90 度或 90 度偏移,这可能是问题所在。

    【讨论】:

    • 我应该在哪里添加这个偏移量?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多