1.实现飞机移动控制
// 这个脚本实现控制飞机前后移动,方向由鼠标控制
//1.WS控制前后移动2.鼠标控制上下左右旋转3.AD控制倾斜
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
// 这个脚本实现控制飞机前后移动,方向由鼠标控制
//1.WS控制前后移动2.鼠标控制上下左右旋转3.AD控制倾斜
//2025.4.2@leoyang
public GameObject PlayerPlane;
public float Speed=10f;
public float RotateSpeed = 5f;
//---------------------
void Update()
{
if (Input.GetKey(KeyCode.W))
{
PlayerPlane.transform.Translate(new Vector3(0, 0, 1* Speed * Time.deltaTime));
}
if (Input.GetKey(KeyCode.S))
{
PlayerPlane.transform.Translate(new Vector3(0, 0,-1* Speed*Time.deltaTime));
}
if (Input.GetKey(KeyCode.A))
{
PlayerPlane.transform.Rotate(new Vector3(0, 0, 1* RotateSpeed*Time.deltaTime));
}
if (Input.GetKey(KeyCode.D))
{
PlayerPlane.transform.Rotate(new Vector3(0, 0, -1 * RotateSpeed * Time.deltaTime));
}
}
}
第二版
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
// 这个脚本实现控制飞机前后移动,方向由鼠标控制
//1.WS控制前后移动2.鼠标控制上下左右旋转3.AD控制倾斜
//2025.4.2@leoyang
public GameObject PlayerPlane;
public float Speed=10f;
public float RotateSpeed = 5f;
public float ViewRotateSpeed = 10f;
//---------------------
private void Start()
{
Cursor.lockState = CursorLockMode.Locked;
}
void Update()
{
MoveController();
ViewController();
}
/// <summary>
/// 控制飞机基本移动
/// </summary>
void MoveController()
{
float tempValue = Input.GetAxis("Vertical");
PlayerPlane.transform.Translate(new Vector3(0, 0, tempValue * Speed * Time.deltaTime));
float tempADValue = Input.GetAxis("Horizontal");
PlayerPlane.transform.Rotate(new Vector3(0, 0, tempADValue * RotateSpeed * Time.deltaTime));
}
/// <summary>
/// 这个函数是通过鼠标控制视角方向
/// </summary>
void ViewController()
{
//Input.mousePosition.x
float RotateXValue= Input.GetAxis("Mouse X");
PlayerPlane.transform.Rotate(new Vector3(0, RotateXValue * ViewRotateSpeed*Time.deltaTime,0));
float RotateYValue = Input.GetAxis("Mouse Y");
PlayerPlane.transform.Rotate(new Vector3(RotateYValue * ViewRotateSpeed*Time.deltaTime,0,0));
}
}