- 博客(13)
- 收藏
- 关注
原创 阅读时遇到的代码
今天阅读书籍《3D数学基础:图形与游戏开发》时,遇到了一些代码。因为干看着读不下去,因此抄一遍,便于理解和阅读。6.2节 Vector3类。
2024-12-17 18:40:36
134
原创 MMORPG跟做-05-02 人物移动及人物平滑转身
使用差值运算Quaternion.Lerp()方法,让人物转身的速度达到一个合适的值,以此获得一个较为合理的转向效果。一开始考虑直接使用transform.LookAt()方法,但是视觉效果上,人物转身特别生硬,需要有一个平滑转身的效果,因此换一种方法,使用四元数差值运算。人物在地面上行走,并且射线检测需要与地面碰撞,因此创建一个地面,并给地面设置一个标签,例如将地面的标签设置为“Ground”。人物移动需要有一个目标位置,当鼠标点击屏幕,人物就要移动到屏幕的对应位置,因此,需要使用到射线检测。
2024-12-14 20:53:29
277
原创 【Unity】伤害冒字(代码待优化)
跟的教程是比较早的,14年录制的一套视频。教程中使用的NGUI。扫了一眼ngui的HUDText.cs,没有耐心阅读(超过两百行,不想阅读了),因此使用TextMeshPro这个UI控件制作该效果(也可以使用Text制作。用TextMeshPro的原因,是因为之前很少用到,在这里换个新的控件试试)。该脚本提供的方法在每次调用后都先创建再销毁,可以考虑使用对象池。每次调用后不是销毁,而是禁用,然后再调用ShowText方法时,再启用TextMeshPro(如果使用Text制作该效果,则启用Text)。
2024-04-09 15:45:51
393
原创 【unity】将技能拖入快捷栏
为了赶进度,目前先用这种方法实现想要的功能。日后将对该部分代码进行重构,消除冗余代码,找到更简便的逻辑思路。主要实现的实际释放拖拽后的操作。该脚本挂载在技能Icon上面。这次是将UI拖入指定的位置。依旧是拖拽UI的功能。
2024-04-06 15:54:41
495
1
原创 unity拖拽背包物体,并交换两个物体的信息
前几天看了一个教程,背包物品交换。由于教程中使用的是ngui,很多代码需要使用UGUI重新写,因此苦恼了几天。我遇到了以下问题,在此详细罗列,以记录错误的原因和修改的方法,供日后阅读查找。一、背包中的物品在拖拽之后放入指定的空格子(问题1:不知道该怎么获得指定的空格子;问题3:更新格子内的物品信息时找不到该物品);二、背包中的物品在拖拽之后放入原来的格子(问题2:少了两行代码);
2024-04-06 15:14:48
1847
2
原创 找bug找错了方向。物体禁用时获得GameObject可使用Inspector面板指定方式。
工程运行之前,持有该脚本物体是禁用状态。所以用了Inspector面板指定对象的方法。(实际上我更想使用程代码进行赋值。今天又去从头捋了一遍,发现方法没有写错。后来突然灵光一闪,想到一个最简单的错误,变量没有赋值。这是我自己画的表情包。也不知道在哪看的,也不知道叫啥名字,突然想起来,就仿照着画了一个。找了两天的bug,问了GPT,查了论坛,都没有解决。一直以为是拖拽的功能写的不对。这个表情包最能表达我现在的心情。验证之后,真的,变量没有赋值。
2024-04-03 17:18:34
190
2
原创 20240329开发过程中的问题
Inve脚本中的一个方法在另外一个FuB脚本中被调用,由于Inve在Awake()方法中给instance赋值,所以即使禁用Inve脚本,FuB脚本依旧可以调用到。父子物体同时挂载了同一个脚本(且叫它Inve)。该脚本中含有Awake方法,并且做成了单例模式。2.父物体copy子物体身上的Inve,则只执行子物体的Inve。子物体copy父物体的Inve组件时,则只执行父物体的Inve。1.父子物体“同时禁用Inve、只有一个禁用、都不禁用”这四种情况,点击按钮,仍然能执行其身上脚本。
2024-03-29 16:25:48
231
1
原创 关于unity中读取txt文件时报错:Input string was not in a correct format.
空白行导致读取txt文件时报错。
2024-03-28 16:23:45
590
原创 unity中Transform.Find&Transform.root.Find&GameObject.Find及激活未激活
• 分析GameObject.Find列,可以得出结论,GameObject.Find可以找到所有已激活的物体(前提是其父物体也是激活状态),所有未激活的物体(及其子物体,无论子物体自身是否激活)都找不到。与辈分无关(即使挂载脚本的对象是孙子辈的,也可以找到爷爷辈的已激活的物体)。其余物体(即同辈的,父辈的,爷爷辈的,孙子辈的,重孙子辈的)都找不到,无论是否激活。从本人(挂载测试脚本的对象)的爷爷到本人的孙子,共4种情况(其中,本人未激活,本人父辈祖辈未激活,脚本无法运行,所以4种情况)。
2023-06-03 14:32:55
1801
1
原创 20230530 犯傻日记
今天,我重新拾起这个问题,联调,打印日志,结果,怎么着,tnnd这个脚本居然被我禁用了,我还傻了吧唧地在那儿找半天。一个bug,事件调用,能运行,但是没有我想要的效果。查了好几天,各种贴吧论坛,各种找,结果,都没有解决办法。在运行unity工程之前,先检查,脚本是否被禁用。
2023-05-30 23:21:04
74
1
原创 20230512关于敏捷编程的一些想法
我认为的敏捷开发时这样的:前期设计的时候,已经考虑到将来可能发生改变的绝大多数功能及模块,并且提前设计好框架,使它对迭代升级之后的软件有较好的兼容性。并且在增删改某些功能的时候,能够快速、少量地进行,修改某一部分的时候,对其他模块的影响达到一个尽可能小的值。这样设计出来的编码,能够被很容易地增删改。还未真正学过敏捷编程,并且没有看过《敏捷软件开发:原则、模式与实践》这本书。等待某天学完敏捷编程,看完《敏捷软件开发:原则、模式与实践》这本书,再来修改今天的看法。并且,在敏捷编程过程中,一定要有及时的重构。
2023-05-12 09:32:37
82
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人