- 博客(32)
- 收藏
- 关注
原创 cocos:从@ccclass装饰器到组件化开发
组件化开发的核心思想是将功能拆分成独立的、可复用的模块(组件),并通过组合这些模块来构建复杂的系统。功能单一每个组件只负责一个明确的功能,例如控制玩家移动、管理敌人行为、播放音效等。这种设计遵循了软件开发中的单一职责原则(SRP),使组件易于维护和扩展。高内聚、低耦合组件内部实现自己的逻辑,与其他组件之间的依赖关系尽量减少。组件之间通过公共接口或事件进行通信,而不是直接依赖彼此的实现。复用性组件可以被多个节点复用,减少重复代码。例如,一个。
2025-03-21 10:16:39
1106
原创 【图解教程】三分钟搭建云端简易个人知识库
可以看到一个打开好的vscode界面,右侧还有着两个窗口,一个readme文件用来大致介绍和使用说明,右侧是AnythingLLM的软件界面,这个工具是搭建知识库的核心软件,提供交互式聊天界面,且支持知识库上传并基于知识库进行问答。9.点击底部的更新按钮,再次回到首页后,就可以直接与Deepseek对话了,但是目前我们还没有上传文档,所以deepseek还无法获取到我们的文档内容。7.然后创建工作区,这个工作区可以理解为一个独立的知识库,你可以创建不同的工作区来管理不同的知识库。2. 注册或登入一个账号。
2025-03-21 10:04:11
637
1
原创 cocos 超简单易理解的无限循环PageView(核心代码仅7行)
这样在页面移动的到最左边的3时(索引为0),将页面悄悄的定位到 3(索引为3),只要这种变换看不出来痕迹,就可以实现循环,移动到最右边的1时也同理,将页面定位到1(索引为1)即可。假设只有 1 2 3 三页,如果需要循环显示,则需要在 1 前面插入 3,在 3 后面插入 1。也就是 3 1 2 3 1,索引分别为 0 1 2 3 4。
2024-11-08 10:49:12
394
原创 【cocos creator】VM487:1151 cc.Scheduler: Illegal target which doesn‘t have uuid or instanceId.
先说结论:是由于在继承了cc.Component的脚本中定义了名为“ _id ”的字段,导致在node节点中添加子物体的时候(addChild或者setParent等),出现该报错,并且这个报错还是偶现的。解决:把该变量名改一下就可以了。
2024-10-22 10:12:17
251
原创 C#高级编程笔记--字符串和正则表达式
正则表达式的一个很好的特性是可以把字符组合起来,其方式与C#中的复合语句一样。在C#中,可以把任意数量的语句放在花括号中,把它们组合在一起。其结果就像一个复合语句那样。在正则表达式模式中,也可以把任何字符组合起来(包括元字符和转义序列),像处理一个字符那样处理它们。唯一的区别是要使用圆括号,而不是花括号,得到的序列称为一个组。
2024-10-07 20:12:23
1031
原创 cocosUI多分辨率适配
目前在游戏开发中所使用的主要适配方案是自适应设计。主要是通过大量使用Canvas、Widget和Label组件来完成分辨率的适配,同时利用脚本获取用户屏幕分辨率或设备型号来完成需要动态加载的界面的适配。因为如果只是使用Cocos Creator的组件,是完全无法解决问题的,这时由于Canvas的局限性所致的,具体不详细说明了,所以需要使用到自定义的适配方案。以设计尺寸为1334x750为例。
2024-08-13 17:43:23
1726
原创 Cocos Creator倒计时
调度一个自定义的回调函数。如果回调函数已调度,那么将不会重复调度它,只会更新时间间隔参数。然后在Start中调用cocos的计时器方法即可。需求:给定一个时间戳,计算剩余时间并进行倒计时。
2024-08-13 17:20:24
623
原创 Unity搭建简易网络服务端与客户端--基础篇
本文将会以制作一个简易双端网络框架的目标,带领读者熟悉游戏开发中Socket网络编程的概念和流程,知道是怎样从零去构建一个双端的网络。建议带着疑问去学习:1. 什么是Socket?2. 为什么需要用到Socket去实现网络编程?3. Socket的实现原理是什么?4. Socket通信的流程是什么?5. TCP和UDP协议有什么区别?能否实现可靠的UDP协议?
2024-08-13 15:58:54
1459
原创 cocos creator绘制网格背景(基于矢量绘图)
可以使用平铺背景图的方式,将一个小背景图无限水平或垂直地重复铺设,以填充整个背景。通过绘制矢量图形,可以创建可缩放的地图,而不会失真。这种方式适用于需要动态变化的场景,比如无尽奔跑游戏或飞行射击游戏。并且可以不用纯色背景,而是使用了平铺图像作为背景,该实现方式只需要把图像的zIndex设为-1,然后尺寸设置为地图尺寸即可。最简单的方式是使用静态背景图,即将整个背景作为一个静态图像加载到游戏中。这种方式适用于简单的游戏或者背景不需要变化的场景。类似于游戏地图的实现方式,可以使用瓦片地图来创建背景地图。
2024-07-31 16:55:26
940
原创 cocos creator让所有button点击时播放音效
属性,这个属性是一个对象。当你访问一个对象的属性或方法时,JavaScript 引擎会首先在对象自身上查找。如果找不到,它会沿着原型链(有时我们并不希望所有按钮都播放同一个音效,对于有些按钮我们需要播放定制的音效,或者说我们需要根据不同的按钮标签来播放不同的音效。这时可以在需要的按钮上添加一个自定义属性,用于指定要播放的音效文件。根据按钮的不同标签来播放不同的音效,可以通过获取按钮的。类的一个私有方法,它处理按钮的触摸结束事件。方法时,根据这个属性来播放对应的音效。的属性,并设置其值为对应的音效文件名。
2024-06-28 12:22:13
869
原创 git创建子模块
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。也许是第三方库,或者你独立开发的,用于多个父项目的库。现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。Git 通过子模块来解决这个问题。子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。
2024-06-19 20:27:49
960
原创 git常用命令
递归删除git中的跟踪索引文件,但该文件会保留在工作区。//以远程分支为基础新建一个分支,并切换到该分支。//新建一个分支,与指定的远程分支建立追踪关系。// 新建一个分支,但依然停留在当前分支。// 添加当前目录的所有文件到暂存区。//切换到指定分支,并更新工作区。// 列出所有本地分支和远程分支。// 提交时显示所有diff信息。// 合并指定分支到当前分支。// 提交所有变化到仓库区。// 提交暂存区到仓库区。// 列出所有本地分支。// 列出所有远程分支。
2024-06-19 20:05:23
492
原创 C#高级编程笔记-委托、lambda表达式和事件
定义委托基本上是定义一个新类,所以可以在定义类的任何地方定义委托,既可以在另一个类的内部定义,也可以在任何类的外部定义,还可以在命名空间中把委托定义为顶层对象。根据定义的可见性,可以在委托定义上添加一般的访问修饰符:public、private、protected等:委托实现为派生自基类System. MulticastDelegate的类,System.MulticastDelegate又派生自基类System.Delegate。
2024-05-06 16:44:19
931
2
原创 C#高级编程笔记-泛型
泛型是C#和.NET的一个重要概念。泛型不仅是C#编程语言的一部分,而且与程序集中的L(Intermediate Languag,中间语言)代码紧密地集成。有了泛型,就可以创建独立于被包含类型的类和方法。我们不必给不同的类型编写功能相同的许多方法或类,只创建一个方法或类即可。另一个减少代码的选项是使用Object类,但使用派生自Object类的类型进行传递不是类型安全的。泛型类使用泛型类型,并可以根据需要用特定的类型替换泛型类型。这就保证了类型安全性:如果某个类型不支持泛类,编译器就会出现错误。
2024-05-05 23:35:31
1217
3
原创 Unity与C#的关系
第一,我们首先需要知道Unity与C#的关系是什么?第二,我们要明白为什么Unity会使用C#,而不是C++?第三,我们需要知道Unity是怎么使用C#的?如果是使用Mono作为运行时,C#脚本会被编译成中间语言(IL)代码,然后由Mono的即时编译器(JIT)在运行时转换为本地代码。先说结论:C#是Unity用于开发游戏的主要编程语言之一,而Unity则提供了一个集成开发环境,允许开发者使用C#来编写游戏逻辑。
2024-05-04 21:37:09
1828
原创 C#高级编程笔记-运算符和类型强制转换
本章的主要内容如下: C#中的运算符、使用nameof运算符和空值条件运算符、 隐式和显式转换、 使用装箱技术把值类型转换为引用类型、 比较值类型和引用类型、 实现索引运算符、重载标准的运算符,以支持对定制类型的操作、 通过类型强制转换在引用类型之间转换
2024-05-04 15:33:56
1034
原创 C#高级编程笔记-数组
本章讨论如下内容: 简单数组、多维数组、锯齿数组、Array类、 数组和集合接口、数组作为参数、数组协变、 枚举、结构比较、 Span、数组池
2024-05-02 20:52:17
1235
1
原创 C#高级编程笔记--继承
构造函数的调用顺序是先调用System.Object,再按照层次结构由上向下进行,直到到达编译器要实例化的类为止。还要注意在这个过程中,每个构造函数都初始化它自己的类中的字段。这是它的一般工作方式,在开始添加自己的构造函数时,也应尽可能遵循这个规则。注意构造函数的执行顺序。基类的构造函数总是最先调用。也就是说,派生类的构造函数可以在执行过程中调用它可以访问的基类方法、属性和其他成员,因为基类已经构造出来了,其字段也初始化了。如果派生类不喜欢初始化基类的方式,但要访问数据,就可以改变数据的初始值
2024-04-29 14:45:27
1190
原创 C#高级编程笔记--对象和类型
是成员变量,主要是为了类的内部数据交换使用,字段一般是用private修饰,也可以用readonly修饰,表示只读字段,其它修饰符比较少用;字段是用来存储数据的。常量与类的关联方式同变量与类的关联方式一样。
2024-03-12 00:47:33
1440
1
原创 C#高级编程笔记--C#基础难点
在开始介绍C#中的数据类型之前,理解C#把数据类型分为两种是非常重要的:●值类型●引用类型下面几节将详细介绍值类型和引用类型的语法。从概念上看,其区别是值类型直接存储其值,而引用类型存储对值的引用。C#中的值类型基本上等价于Visual Basic或C++中的简单类型(整型、浮点型,但没有指针或引用)。引用类型与Visual Basic中的引用类型相同,与C++中通过指针访问的类型类似。值类型存储在堆栈中,而引用类型存储在托管堆上。
2024-03-11 01:28:09
1752
原创 C#高级编程笔记--.Net体系结构
例如,Visual Basic 2008的Integer实际上是一个32位有符号的整数,它实际映射为中间语言类型Int32。因此在中间语言代码中就指定这种数据类型。C#编译器可以使用这种类型,所以就不会有问题了。在源代码中,C#用关键字int来表示Int32,所以编译器就认为Visual Basic 2008方法返回一个int类型的值。通用类型系统不仅指定了基本数据类型,还定义了一个内容丰富的类型层次结构,其中包含设计合理的位置,在这些位置上,代码允许定义它自己的类型。
2024-03-09 00:53:41
1890
原创 Unity实现开关门效果
该效果实现需要解决两点问题:1.检测人物是否处于门前2.相对于人物开合,即人物在门外开门则门往里开,在里则往外开,关门亦然。
2024-02-24 18:03:23
1248
1
原创 Unity实现按键开关面板
实现该功能最主要的一点就是就是要解决怎么在下次按下按键时关闭面板。所以我们需要一个布尔值来记录面板的打开状态,如果是打开就为true,如果是关闭就为false。并且由于只能按下该键,所以我们想让布尔值发生状态改变,那么就可以使用" ! " (逻辑非)运算符。
2024-02-21 20:51:00
803
1
原创 Unity PackageManager无法获取Unity商店内资产
当我们想要从PackageManager导入自己下载的资产时,却出现报错。原因:无法获取到你的UnityID,即无法获取到你的登入账户。1.重新登入Unity Hub,确保左上角是登入状态。2.如果控制台没有报错,就多刷新几次。3.下载速度慢并且不稳定,可打开梯子。
2024-02-21 17:07:09
933
1
转载 Unity 打包后的日志查看(Unity自带的)
PC包:勾选以上选项,就可以在屏幕上看到日志了,日志文本文件新版本unity的在C:\Users\用户名\AppData\LocalLow\DefaultCompany\自己的项目下,旧版本的unity在打出来的包的data那个文件夹下。二:手机的,可以导入叫HiDebug的这个插件,然后在某个方法里加上这句Debuger.EnableOnScreen(true);ScriptOnly:显示日志,并显示脚本调用关系,不显示堆栈信息。Full,则是显示日志,并显示脚本调用关系和堆栈信息。
2024-01-29 11:34:58
2660
1
原创 Unity导出项目报错
原因二:对象引用缺失,由于本来挂载在上面的游戏对象被删除了,导致出现Missing,重新挂载一个游戏对象上去即可。原因一:游戏对象上挂载的脚本组件缺失,移除即可。
2024-01-28 18:18:50
1043
原创 VS调试发现函数求值需要运行所有线程(已解决)
在网上找了许多解决办法都没有用,最后发现是由于查询语句写错导致,这里我将request.User写成了request.Password,导致由于类型等号两边类型不匹配而造成的报错,但是不知道为什么报错是函数求值需要运行所有线程,并且这类错误并不会在编译时报错,需要调试才能发现。
2023-12-09 10:24:15
1225
原创 Unity实现当鼠标悬停在文字上时改变文字的颜色
/获取Button的Text组件。public void OnPointerEnter(PointerEventData eventData) // 鼠标悬停在文本上时调用。public void OnPointerExit(PointerEventData eventData) // 鼠标离开文本时调用。// 设定悬停时的颜色。方法将会被调用,当鼠标离开文本上方时,OnPointerExit方法将会被调用。注意:要确保该文本对象是可以交互的(例如,挂载了Button组件)。当鼠标悬停在文本上方时,
2023-12-06 18:34:13
617
1
原创 Collider组件与Rigidbody组件杂谈
先抛出问题:1. Rigidbody组件是什么?有什么用?2. Collider组件是什么?有什么用?3. 怎么实现碰撞事件?4. 怎么实现触发事件?5. 怎么又实现触发事件又实现碰撞事件?
2023-02-14 17:24:53
661
原创 Error:Could not create the Java Virtual Machine.
在配置jdk环境时出现Error:Could not create the Java Virtual Machine.
2022-07-23 21:02:59
461
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人