当前位置:   article > 正文

Unity2D_车辆移动方式_untiy 模拟汽车移动

untiy 模拟汽车移动

添加2D刚体组件

挂载脚本:

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEditor;
  4. using UnityEngine;
  5. public class Move : MonoBehaviour
  6. {
  7. private float horizontal;
  8. private float vertical;
  9. //私有变量暴露到编辑器
  10. [SerializeField]
  11. [Range(0f, 20f)] private float MoveSpeed = 10;//移动速度
  12. [SerializeField]
  13. [Range(0f, 100f)] private float rotateSpeed = 50f;//转动速度
  14. Rigidbody2D rigidbody;
  15. void Start()
  16. {
  17. rigidbody = GetComponent<Rigidbody2D>();
  18. }
  19. void Update()
  20. {
  21. float h = Input.GetAxis("Horizontal");//转向
  22. float v = Input.GetAxis("Vertical");//前后
  23. Vector3 moveDirection = transform.up*-1f;//获取当前朝向向量
  24. if (v>=0)
  25. {
  26. transform.Rotate(new Vector3(0, 0, -h) * rotateSpeed * Time.deltaTime); //左右旋转
  27. }
  28. else
  29. {
  30. transform.Rotate(new Vector3(0, 0, h) * rotateSpeed * Time.deltaTime); //倒车时反转控制
  31. }
  32. if (v!=0)
  33. {
  34. rigidbody.AddForce(moveDirection * 10f*v*MoveSpeed);//按键时移动
  35. rigidbody.velocity = Vector2.zero;//消除刚力,否则会一直移动
  36. }
  37. else
  38. {
  39. rigidbody.velocity = Vector2.zero;//消除刚力,否则会一直移动
  40. }
  41. }
  42. }

WS前进后退,AD转向,主要是转向后可以沿着当前朝向的方向移动 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/109206
推荐阅读
相关标签
  

闽ICP备14008679号