【问题标题】:Rotating gameobject with Joystick使用操纵杆旋转游戏对象
【发布时间】:2019-10-20 22:00:43
【问题描述】:

尝试使用操纵杆旋转我的游戏对象,我之前做了一个游戏对象面向 mouseInput 的脚本,我想要完全相同但使用操纵杆时?

 public class FaceMouse : MonoBehaviour
{
void Update()
{


    if (Input.GetMouseButton(0))

    {

        Rotation();

    }

}

void Rotation()
{
    Vector3 mousePosition = Input.mousePosition;

    mousePosition = Camera.main.ScreenToWorldPoint(mousePosition);

    Vector2 direction = new Vector2(
        mousePosition.x - transform.position.x,
        mousePosition.y - transform.position.y);

    transform.up = direction;
}
}

我在搜索并找到了这个脚本,但是游戏对象不像时钟一样旋转,它会在其他轴上旋转我的游戏对象,知道如何让我的对象像第一个脚本一样复制 JOYTICK 运动吗?

public class PlayerMovements : MonoBehaviour
{
public FixedJoystick joystick;
public float speed = 10f;
public float roatateSpeed = 40f;

public GameObject rb;


private void Start()
{
    rb = GetComponent<GameObject>();


}


private void Update()
{
    float horizontal = joystick.Horizontal;
    float vertical = joystick.Vertical;

    Vector3 frameMovement = new Vector3(horizontal, 0f, vertical);




    Quaternion rotation = Quaternion.LookRotation(frameMovement);
    transform.rotation = rotation;
}
}

【问题讨论】:

  • FixedJoystick到底是什么?

标签: c# android unity3d


【解决方案1】:

试试这个

float AxisFactor = 90;
transform.localEulerAngles += new Vector3(vertical, horizontal, 0)*AxisFactor*Time.deltaTime;

【讨论】:

  • 谢谢,但这没有帮助。不确定也许我解释得不好。我喜欢玩家用操纵杆旋转时钟或反时钟。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多