Unity学习笔记:Unity 3D 飞机大战
1、打开unity软件后,首先新建Quad作为背景,导入飞机模型,并为其添加刚体
然后创建C#脚本,挂载到飞机上。
2、给飞机创建子弹,让子弹成为预制体,同样创建C#脚本
3、创建陨石和敌机作为敌方,飞机发射子弹使其销毁,如果飞机与敌方相撞,则飞机爆炸消失。
放上完成后的图:
给飞机设置的组件:
子弹的组件:
陨石的组件:
敌机和其子弹的组件与飞机类似,就不放图了~
接下来是代码:
1、飞机脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/** 玩家飞机飞行的脚本 */
public class PlayerMovement : MonoBehaviour
{
/** 飞机可以飞行的区域 */
public float xMax;
public float xMin;
public float zMax;
public float zMin;
/** 飞机自身的刚体 以及 飞机发射子弹的位置 */
Rigidbody _plane_rig;
Transform _plane_fire_point;
/** 子弹的预制体 */
GameObject _bullet;
private void Awake()
{
//获取刚体
_plane_rig = this.GetComponent<Rigidbody>();
//获取开火位置
_plane_fire_point = transform.GetChild(1);
//获取子弹的预制体
//通过资源加载的方式获取预制体
_bullet = Resources.Load("Prefabs/Bullet") as GameObject;
}
private void FixedUpdate()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
//飞机移动
Move(h, v);
//飞机开火
Shoot();
}
/** 飞机的飞行速度 以及飞机的倾斜度 */
public float plane_speed = 3f;
public float plane_Tilt = 2f;
void Move(float h,float v)
{
//1.获取飞机移动的方向
Vector3 plane_fly_dir = new Vector3(h, 0, v);
//2.设定飞机的飞行速度
_plane_rig.velocity = plane_fly_dir * plane_speed;
//3.移动
_plane_rig.position = new Vector3
(
//Mathf.Clamp(x,y,z)的作用是将x限定在y和z之间
Mathf.Clamp(_plane_rig.position.x,xMin,xMax),