【Unity完整游戏开发案例】从0做一个太空大战游戏

 

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));
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unity青子

难题的解决使成本节约,求打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值