【unity实战】用unity封装一个复杂全面且带不同射击模式的飞机大战射击系统
考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了
C#篇、unity通用篇、unity3D篇、unity2D篇
。
- 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的同学入门。
- 【unity通用篇】:主要讲解unity的基础通用的知识,包括unity界面、unity脚本、unity资源管理、unity动画、unity摄像机等,适合unity初学者入门。
- 【unity3D篇】:主要讲解unity3D的知识,unity3D角色、unity3D物理系统、unity3D光照等,适合只想做2D游戏的开发者学习。
- 【unity2D篇】unity2D篇:主要讲解unity2D的知识,包括unity2D角色、unity2D物理系统、unity2D光照等,适合只想做3D游戏的开发者学习。
这样方便大家按需选择性的去学习,比如有编程基础的大概率可以直接从unity通用篇开始入门,没有编程基础的建议从C#篇开始学习。只想做2D游戏的话,可以直接从unity2D篇开始学习,3D篇大概率就不需要看了,节约学习时间成本。
文章目录
- 最终效果
- Unity飞机射击系统
-
- 1. 项目准备
- 2. 创建飞机射击脚本
- 3. 创建子弹脚本
- 4. 设置场景
- 5. 运行游戏
- 不同发射模式效果演示
-
- 单发
- 直线发射
- 扇形发射
- 环形发射
- 专栏推荐
- 完结
最终效果
Unity飞机射击系统
1. 项目准备
-
打开 Unity,创建一个新的 3D 项目。
-
在场景中创建一个飞机模型(或使用一个简单的立方体代替)。
-
创建一个子弹预制体:
-
在场景中创建一个球体(Sphere),命名为 Bullet。
-
为 Bullet 添加一个材质(例如红色),并将其拖到 Assets 文件夹中,生成预制体。
-
删除场景中的 Bullet 对象。
-
2. 创建飞机射击脚本
-
在 Assets 文件夹中创建一个新的 C# 脚本,命名为 PlaneShooting。
-
将以下代码粘贴到 PlaneShooting 脚本中:
using System;
using System.Collections;
using UnityEngine;
public class PlaneShooting : MonoBehaviour
{
public enum AttackMode
{
Single, // 单发
Straight, // 直线发射
Sector, // 扇形发射
Circle, // 环形发射
}
[Header("攻击模式")]
public AttackMode attackMode = AttackMode.Straight;
[Header("子弹预制体")]
public GameObject bulletPrefab;
[Header("子弹发射点")]
public Transform firePoint;
[Header("攻击间隔")]
public float attackInterval = 0.5f;
[Header("每次发射子弹数量")]
public int bulletCount = 1;
[Header("发射范围(只有直线和环形发射模式才有效)")]
[Range(0, 360)]
public float range = 45f;
void Start()
{
StartCoroutine(AttackRoutine(