Unity2D 街机风太空射击游戏 学习记录 #12QFramework引入

概述

这是一款基于Unity引擎开发的2D街机风太空射击游戏,笔者并不是游戏开发人,作者是siki学院的凉鞋老师。

笔者只是学习项目,记录学习,同时也想帮助他人更好的学习这个项目

作者会记录学习这一期用到的知识,和一些代码逻辑。

项目地址: 学习地址

由于笔者已经跟着视频做了10期,所以这个记录博客不会很连贯。

这里笔者也把自己跟做的项目开源到了码云上
项目地址

QFramework是什么

QFramework 是一个轻量级、模块化的 Unity 游戏开发框架,旨在帮助开发者快速构建高效、可维护的游戏项目。

相关代码优化

生成随机道具部分的代码

使用qf里面的RandomUtility.Choose(),优化生成随机道具的代码

cpp 复制代码
                //从后面随机生成一个
                MonoBehaviour powerUpTemplate = RandomUtility.Choose<MonoBehaviour>(Game.Default.powerUpGhost, Game.Default.powerUpSpread, Game.Default.powerUpCircle);
                //克隆一个进行展示
                MonoBehaviour powerUp = Instantiate(powerUpTemplate, null);
                powerUp.transform.position = other.transform.position;
                powerUp.gameObject.SetActive(true);

数值计算

原代码: float angle = Mathf.Atan2(transform.up.y, transform.up.x) * Mathf.Rad2Deg;

在Unity中,transform.up是物体Y轴方向,类型是Vector3

Mathf.Atan2(y, x)用于计算 从原点 (0,0) 指向点 (x,y) 的向量与 X 轴正方向的夹角(弧度制)。

最后再将弧度转为角度。

优化代码:float angle = transform.up.ToVector2().ToAngle();

ToVector2()可以快速将Vector3转化为Vector2

ToAngle()可以计算Vector2方向对应的角度(夹角x轴)

相关推荐
saoys4 分钟前
Opencv 学习笔记:创建与原图等尺寸的空白图像
笔记·opencv·学习
晓幂6 小时前
【2025】HECTF
笔记·学习·web安全
慕云紫英7 小时前
基金申报的一点经验
学习·aigc
微露清风7 小时前
系统性学习C++-第十八讲-封装红黑树实现myset与mymap
java·c++·学习
宝贝儿好7 小时前
【强化学习】第六章:无模型控制:在轨MC控制、在轨时序差分学习(Sarsa)、离轨学习(Q-learning)
人工智能·python·深度学习·学习·机器学习·机器人
大、男人7 小时前
python之asynccontextmanager学习
开发语言·python·学习
做cv的小昊7 小时前
【TJU】信息检索与分析课程笔记和练习(8)(9)发现系统和全文获取、专利与知识产权基本知识
大数据·笔记·学习·全文检索·信息检索
盐焗西兰花8 小时前
鸿蒙学习实战之路-蓝牙设置完全指南
学习·华为·harmonyos
hkNaruto8 小时前
【AI】AI学习笔记:MCP协议与gRPC、OpenAPI的差异
人工智能·笔记·学习
笨鸟笃行8 小时前
0基础小白使用ai能力将本地跑的小应用上云(作为个人记录)
人工智能·学习