会潜水的小火龙 2024-02-29 13:21 采纳率: 44.4%
浏览 21
已结题

unity2d角色移动旋转问题

下面代码摇杆复位时,旋转角度又回到初始状态了,怎么让角色停留在最后旋转的角度


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float speed;
    new private Rigidbody2D rigidbody;
    private Animator animator;
    
    public Joystick joystick;
    
    void Start()
    {
        rigidbody = GetComponent<Rigidbody2D>();
        animator = GetComponent<Animator>();
        
    }

    void Update()
    {
        Vector2 moveVec = new Vector2(joystick.Horizontal,
     joystick.Vertical);


        Vector3 lookVec = new Vector3(joystick.Horizontal,
         joystick.Vertical, 4000);

        transform.rotation = Quaternion.LookRotation(lookVec, Vector3.forward);
        transform.Translate(moveVec * Time.deltaTime * speed, Space.World);


    }
   
}


  • 写回答

3条回答 默认 最新

  • 精神小黑猫 2024-02-29 14:12
    关注

    加上一个条件:
    比如第30行和第31行改为:

    if (joystick.Horizontal != 0 && joystick.Vertical!=0)
    {
      transform.rotation = Quaternion.LookRotation(lookVec, Vector3.forward);
      transform.Translate(moveVec * Time.deltaTime * speed, Space.World);
    }
    

    没调试你自己试试,思路是这样,让摇杆在原位时候不进行Transform的更新

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月8日
  • 已采纳回答 2月29日
  • 创建了问题 2月29日