自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 飞机大战简单概述

选中Main Camera,将天空盒改为用颜色显示(Solid Color)我这里用的NGUI,而且要显示选角面板,所以创建Root(3D),NGUI的摄像机只渲染UI层,所以Main Camera的渲染会自动取消UI(如果没取消记得取消)。拼面板之前,一定要检查UI Root的是否合适。NGUI上的按钮需要添加碰撞器(Colider)和 按钮(Button Script)。写脚本BeginPanel,关联按钮,编写事件监听。

2026-04-12 10:32:39 373

原创 使用UGUI创建一个简单的排行榜

创建Scroll View的时候,如果不需要那两个滚动条,删去后记得在Scroll View的Scroll Rect组件下把那两个Scrollbar置空,如图:如果又不用,又不置空,就容易出现一些奇怪的问题。

2026-04-02 19:44:32 352

原创 UGUI排行榜无法取出数据的解决方法

希望这篇踩坑记录,能帮到正在用类似UI框架的同行,避免再踩“一帧之差”的坑。

2026-04-01 20:28:37 386

原创 使用UGUI编写一个受击触发的血条

1. 本血条脱离 UI 管理器限制,支持多坦克独立显示,完美解决单面板限制问题2. 采用UGUI Slider实现血量显示,CanvasGroup 控制显隐,流畅无卡顿3. 3D 坐标转屏幕坐标实现头顶跟随,是游戏 UI 跟随 3D 物体的通用方案4. 全程做了空值防护,杜绝报错,适配所有继承 TankBaseObj 的坦克踩过的坑因为我做面板做习惯了,所以习惯先创建一个Panel,再在里面去写UI。

2026-03-30 20:25:33 372

原创 关于使用协程时UI面板开启关闭的卡顿感的解决办法

这里暂停的秒数必须和BasePanel 里的fadeDuration一致,比如 0.2 秒,保证动画完全执行完。但现在出现了一个新的问题,场景切换时,BeginPanel 的淡出动画还没结束,GamePanel 就已经显示出来了,两个面板短暂同屏。用于记录动画已经执行的时间,配合「总动画时长fadeDuration」,算出 0~1 的渐变进度,是 Lerp 的「进度计算器」。基于elapsedTime计时,动画速度不随游戏帧率变化,掉帧时,动画依然匀速,不会忽快忽慢。方式效率低,有视觉断层。

2026-03-29 07:36:06 256

原创 关于unity中切换场景GamePanel面板的Canvas Group组件Alpha通道莫名其妙为0的问题

今天写GamePanel面板逻辑时去测试的时候,发现从BeginScene切到GameScene时,GamePanel(游戏界面UI)不显示。我检查了Hierarchy窗口,发现GamePanel的确被实例化了,但为什么界面上是空的呢?我仔细看了看,发现GamePanel挂载的Canvas Group组件的Alpha的值为0。有大佬可能一眼就看出来了,是同步阻塞但不等待,切换场景后下一行ShowPanel会瞬间执行。场景切换时,Unity 会暂停所有物体的Update生命周期。直接用异步加载不就行了。

2026-03-28 17:43:29 315

原创 UGUI中血量的简单实现

血量最简单的实现方式无疑是一张背景图再加一张血量图。但是UGUI中想要获取一个。这是一个简单的函数实现,一句代码还是方便得多。组件的宽度,实际上你直接获取的是其。组件本身并不存储尺寸信息;

2026-03-28 09:46:30 27

原创 关于canvasTrans存储Canvas.Transform的理解

首先,在 Unity 中,每个 GameObject(游戏对象)都自带且仅有一个 Transform 组件。就像我注释里写的,需要用canvas作为父对象,而设置父对象,本身需要Transform就行了,毕竟设置父对象的核心就是操作。这是我第二次疑惑这里为什么要用canvasTrans为什么要用来存Canvas.Transform,所以写一篇防止自己忘记。甚至,这个canvasTran作为一个变量,也就是缓存,作用可不止于此。只需要获取一次,后续所有 UI 面板挂父对象时,直接用缓存的。

2026-03-23 20:05:51 30

原创 C#写贪吃蛇小游戏时,解决蛇头吃到食物就结束的问题

如果将CheckEatFood()放在之后, 下一次进入Update()中, 在执行CheckEnd()之前会先调用move()和Draw()方法, 使蛇头和其他bodies对象移动(改变位置), 故而不会满足CheckEnd()中头撞身体的条件, 也就不会出现之前所说的问题.CheckEatFood()中的AddBody()方法会使用以记录蛇长度的变量nowNum加一, 在这之前已经产生了一个新的bodies对象, 而这个对象的坐标值与它的前一个bodies相同, 如果此时调用CheckEnd()方法。

2025-10-12 15:10:47 385

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除