当前位置: 首页 > news >正文

【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(
http://www.dtcms.com/a/75109.html

相关文章:

  • Navicat 17.2 正式发布 | AI 助手、支持 Snowflake...超多新功能等你解锁
  • [贪心算法]-最大数(lambda 表达式的补充)
  • 4.JVM-垃圾回收介绍
  • 双链笔记新选择!使用Docker私有化部署Logseq知识库远程团队协作
  • Java学习------static、final、this、super关键字
  • 【最佳实践】Go 状态模式
  • 基于CNN的多种类蝴蝶图像分类
  • SAP学习笔记 - 用Deepseek 整理SAP 01 - MM模块中的常用表及主键
  • 自然语言处理编程文档
  • 8051汇编--条件转移指令
  • OceanBase 中,如何抓包分析应用连接超时的问题
  • SourceTree的安装与使用
  • 【Go每日一练】计算整数数组的最大子数组和
  • docker安装node部分问题
  • Leetcode 刷题笔记1 单调栈part02
  • C# 获取Type对象的方式
  • 本周安全速报(2025.3.11~3.17)
  • 依赖倒置 DIP、依赖注入 DI、控制反转 IoC 和工厂模式
  • 算法备案全景洞察趋势解码:技术迭代、行业裂变与生态重构
  • IP关联对跨境电商的影响及如何防范措施?
  • Arduino开发ESP8266环境搭建
  • LeetCode[19]删除链表的倒数第N个节点
  • 【Go语言圣经3.1】
  • 《Python深度学习》第一讲:深度学习基础
  • uniapp APP权限弹框
  • 高级java每日一道面试题-2025年3月04日-微服务篇[Eureka篇]-Eureka是什么?
  • 卷积神经网络 - 基本概念
  • 【玩转正则表达式】Python、Go、Java正则表达式解释器的差异解析(附示例)
  • 【Mac 从 0 到 1 保姆级配置教程 08】08. 快速配置 Neovim、LazyVim 以及常用开发环境,如果之前有人这么写就好了
  • 算法刷题记录——LeetCode篇(10) [第901~1000题](持续更新)