概述
这是一款基于Unity引擎开发的2D街机风太空射击游戏,笔者并不是游戏开发人,作者是siki学院的凉鞋老师。
笔者只是学习项目,记录学习,同时也想帮助他人更好的学习这个项目
作者会记录学习这一期用到的知识,和一些代码逻辑。
项目地址:学习地址
由于笔者已经跟着视频做了10期,所以这个记录博客不会很连贯。
这里笔者也把自己跟做的项目开源到了码云上
项目地址
QFramework是什么
QFramework 是一个轻量级、模块化的 Unity 游戏开发框架,旨在帮助开发者快速构建高效、可维护的游戏项目。
相关代码优化
生成随机道具部分的代码
使用qf里面的RandomUtility.Choose(),优化生成随机道具的代码
//从后面随机生成一个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轴)