- 博客(55)
- 收藏
- 关注
原创 Unity技巧:轻松实现鼠标悬停文本时的动态变色效果
在游戏或应用中,给用户的界面添加一些小的互动效果能让它们更加吸引人。比如,当策划要求你这样做的时候,当用户将鼠标悬停在文字上时,文字颜色改变,这样的效果会让界面看起来更有趣。本文将教你如何在Unity中实现这个效果,将写好的脚本挂载到按钮上即可。使用这些脚本,你可以轻松地在Unity中实现鼠标悬停时改变文字颜色的效果。
2024-08-13 17:32:35 567
原创 Jenkins链接Gitlab(Http&SSH方式)
为避免汉化导致的显示差异,以下操作中Jenkins均使用英文语言。对于项目中广泛使用SSH连接,尤其是包含子模块时,建议优先采用SSH方式连接Jenkins和GitLab。SSH不仅更安全,而且在处理子模块时更加统一和简便,避免了可能出现的认证问题,有助于保持项目结构的一致性和稳定性。
2024-08-13 13:39:25 719
原创 Windows Server 使用Docke部署挂载问题(安装后无限重启崩溃&迁移镜像到D盘&打包镜像)
问题:在windows server中安装遇到了安装后启动后不到一分钟就崩溃的问题,后面查看log发现可能是挂载到本地目录时出现问题,疑似本地目录权限不足导致挂载出问题。可是又不能不挂载,要改镜像中的配置需要先启动容器再改配置。下面是以我部署过程发现问题,解决问题的思路为阶段讲解,大家可以当故事或者乐子看。有道是当局者迷,旁观者清,有时我们遇到问题可能会绕几个弯才解决问题。不久后再回忆(再做一遍的时候)又会感叹自己当时的愚笨,明明能一步到位。
2024-08-12 16:05:38 1121
原创 unity强力配置插件Luban【Next最新版本】(二)本地化
无需多言,本地化(Localization,简称 L10N)是指将产品、内容或服务适应特定地区或语言的过程。本文简单实现了Luban的本地化功能,旨在抛砖引玉。毕竟我的写法不完美,不一定适合你的项目,但我相信她能够激发您更多的创意和解决方案。顺便吐槽下,Luban的文档设计确实很棒,细节处理得非常到位。不过,老实说,那些示例对于刚接触的且想要实现更多功能的人来说,可能会让人晕头转向(当然,我老版用了很长时间而且有改模板的经验,不是很存在这些问题)。如果能有官方视频教程来辅助理解,那就更完美了。
2024-07-04 13:43:13 1318
原创 Gitlab SSH无法连接但是HTTP可以连接
按"i",“o”,“a”,"r"任意字母进入编辑模式,将PermitRootLogin默认值由no修改为 yes。service ssh restart 重启ssh服务 。
2024-06-17 14:24:17 793
原创 Unity3D输入事件
Unity输入事件分为两类,全局触发和监听式触发。全局触发通常是运行在update在每帧进行检测,而监听式触发是被动的输入事件。简单的说了下Unity的输入事件和用法。
2024-05-23 23:27:54 632
原创 手把手教你用Docker搭建gitlab
如题所述,手把手带你搭建gitlab,目标是实现ssh链接clone项目,不会我随你怎么说。说正题,GitLab 是一个基于 Git 的全面 DevOps 平台,涵盖了从代码管理、持续集成和持续交付 (CI/CD) 到项目管理和安全测试的整个软件开发生命周期。由于可以布置到本地,GitLab 使开发团队在开发和项目管理时更加高效,实现了快速协作和代码管理。我致力于将技术内容讲解得通俗易懂,让每一位读者都能轻松上手。如果有任何疑问或建议,欢迎在评论区留言,您的反馈将帮助我不断改进,打造更完美的内容。
2024-05-23 09:15:00 10239 4
原创 Unity算法(一)——快速排序算法
算法是程序员的基础能力之一,资质越老的程序员在这方面理解会越深,很多时候项目在某个需要优化、提升的节点时,往往一些算法的使用就可以大大提升程序性能。当然,对于不同项目需求,要用适合的算法,在效率与业务之间寻找平衡。此为第一章,快排算法。
2024-05-21 23:56:53 859
原创 Unity UGUI系统概念分析
理论本篇文章分析了UGUI系统的基本构成和几个UGUI的学习重点,内容将逐步完善。有五个待写,就是五篇独立的文章,后续会补充上链接。等不及的朋友可以先看看其他博主的文章,我们一起共同进步,持续学习。
2024-05-21 02:15:54 820
原创 Unity网络层剖析(一)——TCP与UDP
这篇文章本应是读书系列中的一章,但由于所有Unity书籍或多或少都会涉及网络部分,而我本人对网络也有一定了解并具备相关经验,因此决定结合多个书本内容、网络上的概念以及自身的经验,分享一些心得体会。通常来说,Unity属于前端开发,了解如何与后端进行交互即可,因为在Unity项目中,网络处理主要涉及数据的收发。然而,掌握更多的知识在实际应用中会使你更加游刃有余。本章概述了Unity在网络层中的两种方式:TCP和UDP,以及它们的基本概念。
2024-05-20 23:21:40 816
原创 Unity2024面试总结(适用3-5年经验以上)
最近进行了几次面试,发现如今的Unity市场变得不太一样了,不再只是看重解决问题的能力,而是更注重面试表现,竞争也更加激烈。因此,在面试前应当互相明确以下几点:1、面试岗位需求:确保了解岗位的具体要求和职责。2、面试流程:确认面试有几轮,每一轮的侧重点是什么,特别是哪一轮是技术面试。(不然遇到非技术人员各自瞎问,后面面完才知道是跨服聊天,浪费双方时间)面试不是单纯的考试,而是一个双向选择的过程,是展示自我的机会,同时也是让公司了解你认同你的方式。
2024-05-20 09:00:00 3882
原创 Unity读书系列《Unity高级编程:主程手记》——C#技术要点
本文旨在总结某一概念的性质,并引出相关的技术要点。如果读者希望深入了解相关技术,可以通过点击链接获取更多信息。友情提示,建议将本文内容分成多个阶段学习,一次性阅读可能会让新手感到困惑。初次接触某些概念时容易产生误解,因此需要谨慎理解。本文旨在总结业务逻辑优化技巧,并引出相关的技术要点。在实际项目中,业务逻辑编写的代码往往是最重要的,而优秀的程序员会注重以恰当的方式实现功能,提升性能和效率。不必担心自己的代码不够好,或者优化的方向不够准确。通过实践并不断修正错误,我们才能不断成长。
2024-05-09 08:45:00 1083
原创 Unity 浮点数的精度问题
说到浮点数精度,大家想到的就是double比float的精度高,想要高精度就用double类型。两者最明显的区别就是所占位数的不同,也就是字节不同,float是32位占8字节,double则是64位占8字节。因此,运算效率也不同。浮点数精度问题是计算机中普遍存在的挑战。由于计算机存储和计算的限制,浮点数在进行运算时往往会产生舍入误差,导致结果不够准确。为了解决这个问题,我们可以采取一些策略,如控制精度、使用定点数等。在程序开发中,需要特别注意处理浮点数的精度,以确保程序的正确性和稳定性。
2024-05-08 19:31:18 1777
原创 Unity 委托与事件、装箱和拆箱
不知道大家在学习C#之前有没有学习过C/C++,在中后期会接触到指针。她不仅能指向变量的地址,还能指向函数的地址。本质上,指向的都是内存的地址。而在C#中,万物皆是类,指针被封装到内部函数中,因此并不常见。所有函数指针的功能都以委托的方式完成。委托可以被视为更高级的函数指针,它不仅能将地址指向另一个函数,而且还能传递参数、获取返回值等多种信息。委托具有以下属性:委托类似于 C++ 函数指针,但委托完全面向对象,不像 C++ 指针会记住函数,委托会同时封装对象实例和方法。
2024-05-08 08:45:00 2252 1
原创 Unity 状态机
提到Unity状态机,接触不久的开发者会想到Unity的动画状态机,而对于老油条来说,可能会回忆起自己实现的动画状态机。当然,常见的框架设计中都会出现属于自己的状态机接口,之前一篇文章也提到了一种FSM的写法。状态机是分为有限状态机和无限状态机,而Unity开发的基本上都是有限状态机(FSM),无限状态机主要是在编译原理中可能用到,基本上属于概念向的东西,所以本篇主要介绍有限状态机(FSM)的使用。
2024-05-08 08:45:00 2491
原创 Unity C#的底层原理概述
看到底层二字,会感到很高深,好似下一秒就要踏入深渊。实际上,对于C#底层的理解非常简单,比冒泡排序这种基础算法还要简单。底层的两种机制:Mono和IL2CPP。IL2CPP其中的"2"我们念做兔,念做 “to”,含义就是"转为"。xx2yy也就是把xx转为yy。一句话总结,IL2CPP的引入主要是为了解决Mono维护成本高、版本受限以及性能优化等问题。IL2CPP通过将C#代码转换为C++代码,再编译成机器码的方式,实现了跨平台的支持,并且能够更好地适配新的C#特性。
2024-04-29 22:49:39 2050 2
原创 Unity Dictionary底层源码剖析
Dictionary字典型数据结构本质是关键字Key值和Value值一一映射的关系。Key可以是不同的类型,int、string等等,怎么挥事呢?答案是哈希表,是利用哈希函数将键映射到特定位置,以实现快速的键值检索。砖家建议:先看List源码解析,再看本章。Dictionary 是一种常见的数据结构,由数组构成,使用哈希函数将键映射到数组的特定位置。它通过哈希表实现键值对的存储和检索,具有快速的查找、插入和删除操作。
2024-04-29 08:30:00 1381
原创 Unity List底层源码剖析
没有扎实的基础,很多编写的程序会随着软件规模的扩大或扩展而产生诸多问题,然后这些程序很可能会被无情的抛弃并重写。而其中的问题可能只是因为一点点的小问题堆积起来,基础可见其重要。本章我们将深入了解经常使用的List。我曾经在学校学习过链表、列表等数据结构,但实际上当时并没有真正理解,只是简单地复制粘贴代码。我觉得自己的基础很差。后来在工作中遇到一些基础问题或者想要了解某些内部原理时,总是依赖查找资料。如果你也想深入了解C#,我推荐购买《C#图解教程》当作查阅资料。
2024-04-27 08:45:00 1539
原创 Unity读书系列《Unity高级编程:主程手记》——架构
这篇文章是《Unity高级编程:主程手记》的第一章。从标题就可以看出,该书不涉及通常意义上的基础知识,而是针对进阶内容。适合那些开发经验至少超过2年的老手。希望大家能喜欢!接下来就让我们进入正文。软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件体系结构是构建计算机软件实践的基础。这是网上搜到的定义,说实话有点高深,如果非得我解释清楚,我只能说,懂得都懂。哈哈,开个玩笑,接下来我会用通俗易懂的语言来解释。
2024-04-27 08:00:00 2825
原创 Unity自动化之自动构建图集与压缩
为降低DrawCall,我们需要将多个图片构建在图集上。同时还有个好处,可以自动补齐图片补齐2的幂次方或正方形图,这样便可以进行ETC和PVRTC压缩了。官方解释请注意 Sprite Packer 在 Unity 2020.1 和更新版本中已弃用,并且将不再作为精灵打包模式的可用选项。现有已使用 Sprite Packer 的项目仍然可以继续使用它,但是在 2020.1 以后创建的任何新项目在打包纹理时将默认使用 Sprite Atlas 系统。
2024-04-26 08:45:00 1248
原创 Unity读书系列《Unity3D游戏开发》——脚本(一)
脚本在Unity的重要程度不用多说,她是大部分软件的核心组件。我们将在此篇文章学习脚本模版及其拓展、脚本的生命周期、脚本的执行顺序、脚本序列化,下一篇为脚本编译与调试。这篇文章将介绍Unity中脚本的核心概念和重要性。我们探讨如何创建和定制脚本以满足特定需求,以及脚本的生命周期、执行顺序和序列化等内容。后面两个示例(定时器和工作线程的运用)我分别用单独的章节说明,如果需要再去学习运用;这种安排旨在强调项目驱动的学习方式,同时鼓励读者在实践中运用这些示例来更快地提升自己的技能。
2024-04-26 08:30:00 1839
原创 Unity 异步与工作线程(多线程)
工作线程(多线程)是指在一个程序中同时执行多个任务的能力。多线程编程可以提高程序的性能和响应性,特别是在需要同时执行多个任务的情况下。工作线程通常用于执行耗时的任务,以避免阻塞主线程,从而保持程序的流畅性。目前很多主流游戏或软件在启动或下载等待时会使用多线程技术,应用十分广泛,本人也在工作中遇到。本篇抛砖引玉,记录一些用法,希望对大家有用。
2024-04-24 00:26:55 470 1
原创 Unity 定时器与间隔定时器
协程任务能够作为定时器使用,但存在一个问题:必须将其置于脚本中。然而,我们游戏的逻辑大部分都在 C# 代码中,因此需要封装一个不依赖于脚本的定时器。这篇文章介绍了在游戏开发中使用协程任务作为定时器的问题,以及两种解决方案。第一种方案是使用协程程序实现定时器功能,第二种是利用 CustomYieldInstruction 实现间隔定时器。这些方法的目的是为了在游戏开发中实现定时功能,例如在一定时间后触发特定事件或进行特定操作。希望大家可以更灵活地运用在工作和项目中,更快且有效的完成任务。
2024-04-24 00:26:33 647
原创 Unity3d使用Jenkins自动化打包(Windows)(二)
自动化打包的价值在于让程序员更轻松地创建和管理构建工具链,提高编程效率,将繁杂的工作碎片化,变成人人(游戏行业特指策划)都能快速掌握的操作。在Unity行业中,这部分工作通常由程序员负责维护,而不同于其他行业可能有专门的运维团队负责。自动化打包的大体原理是通过Jenkins调用脚本命令行执行操作,从而完成其他软件或平台的功能,使得繁杂的工作变得更加高效和可控。本文介绍了如何利用 Jenkins 实现 Unity 项目的自动化打包,并通过命令行传递参数指定版本号等内容。
2024-03-28 01:12:43 1557
原创 Unity3d使用Jenkins自动化打包(Windows)(一)
本篇旨在介绍基础的安装和操作流程,只需完成一次即可。后面的篇章将深入探讨如何利用Jenkins为Unity项目进行打包。本篇文章介绍了基础的安装和操作流程,包括安装JDK、安装Jenkins以及Jenkins插件的安装和使用。通过本文,你应该了解了配置JDK环境,安装并初始化Jenkins,以及利用Jenkins进行项目管理和自动化打包的基本操作。这些内容对项目开发和管理很重要,会显著提升提高工作效率和项目质量。
2024-03-28 01:11:58 1898
原创 Unity2020.3打包ARFoundation问题记录
在Unity 2020.3版本中使用ARFoundation进行打包时,遇到一些小问题。本文简要记录了其中一些问题及解决方法,以备不时之需。记录一些ARFoundation使用过程出现的小问题,并将持续更新。
2024-01-25 19:12:05 805
原创 Unity读书系列《Unity3D游戏开发》——拓展编辑器(一)
本篇文章是对前文关于编辑器拓展的探讨的延伸。即使内置的Unity编辑器再强大,也无法满足所有不同产品和游戏的需求。为了解决这个问题,Unity提供了编辑器拓展的API接口。我们可以通过代码反射的方式修改内置的系统编辑器,同时,游戏开发者也可以利用EditorGUI接口编写适合自己的专属游戏编辑器。这涵盖了从简单的一键换字体、材质、一键打包、管理、优化,到复杂的技能编辑器、关卡编辑器等功能。特别需要注意的是,由于内容涉及较多且较为复杂,会分2节进行详细讨论。
2024-01-25 00:06:56 1595
原创 Unity读书系列《Unity3D游戏开发》——编辑器的结构
本篇对应标题书籍的第二章编辑器的结构,也就是unity的编辑器的使用及菜单的使用。在本章中,我重点介绍了编辑器的基本功能,并着重说明了一些容易被忽视的关键要点。除此之外,还有一些功能,如编辑器锁头等,未在详细讲解中提及。这些额外功能包括编辑器的🔒锁头、分辨率设置等,属于基础操作,我相信大家在使用Unity时能够轻松摸索出来。
2024-01-19 18:34:35 1155
原创 配置SSH+Sourcetree+Git
版本管理是众多公司多人协作制作的基石。在过去的工作中,我们发现一些同事可能对此感到陌生,而在网上查找相关文章又耗时较长。实际上,版本管理的配置并不像想象中那么复杂,只需花点时间,大概一盏茶的功夫就能搞定。在这里,我进行了总结。下面是两个主流版本管理系统的配置方法。经过考虑,我决定不采用图文方式,因为配置相对来说相当简单,只需按步骤操作即可。
2024-01-19 18:31:45 1177
原创 Unity读书系列《Unity3D游戏开发》——基础知识
本篇对应标题书籍的第一章基础知识,也就是unity的基本常识和工作流的说明。Unity目前用于创建2D和3D游戏、模拟应用程序、可视化体验以及其他虚拟现实(VR)和增强现实(AR)应用,游戏工业两开花。Unity初版是在2005年发布的,开始时用unity3.X、4.X这样的名称进行版本更新及称呼;
2024-01-09 23:16:17 1058
原创 Unity读书系列(序章)
欢迎来到“读书系列”!“读书系列”是一个旨在与你分享我在技术领域所阅读的书籍的项目。本篇是序章,接下来的文章我将按书籍分类,逐章分享。可能包括《Unity3D游戏开发(第二版)》、《Unity3D网络游戏实战》、《Unity3D高级编程,主程手记》、《Shader入门编程》等经典书籍。难度适中,也是我查漏补缺的好机会。最重要的是,记得在摸鱼的时候来看,哈哈。最后希望大家对我分享的书籍感兴趣,如果确实有兴趣,建议购买原版深入阅读。毕竟我只是提炼了关键内容,原著通常更详尽。期待大家从中获得启发。
2024-01-09 02:30:47 527
原创 Unity Animal Controller 快速构建控制器
动物控制器(AC)是一个基于脚本架构的动画框架控制器。它适用于任何动物或人形角色的根运动或原地动画。我对该插件的直观感受是:这或许不是一个适合你游戏的控制器,却可能是帮助你快速构建原型的工具。如果你也向我不懂动画系统,那么在使用的同时在一定程度上帮助你在动画部分有更深的认知。总之,快速构建第三人称rpg类型的游戏原型的时候,这款插件就非常合适了。插件文档说明本篇文章概述了一款rpg控制器的基本功能,无需代码开箱即用。如果需要如AI,添加玩家能力,攻击连招模式等更多功能,作者也提供了相关视频教程。
2023-10-20 17:22:16 395
原创 Unity Cesium Native源码调试
unity调用cesium包的原理是调用包文件夹里面com.cesium.unity\Editor下的dll文件(就是源码编译那篇生成的dll),如果有改写源码的需求我们修改然后发布dll进行测试即可,但是出现问题的时候很麻烦——通常使用返回值或者弹窗来提示错误信息,如果有进一步需求重新发布dll测试。既然我们拥有了源码,那么就不用受这气了,进行c++源码调试。本人使用vs2022作为unity编辑器,所以使用vscode作为调试c++的工具,当然也可以反过来。
2023-08-31 14:47:33 630
原创 Unity Cesium 源码编译
Cesium底层为Cesium Native(C++),官方制作了unity、unreal等包体供不同平台使用,但是想要更改、添加某些功能就需要在底层进行修改,这就涉及到源码编译。只有在源码修改再编译,引入平台才能实现想要的功能,unreal因为本身就是C++的官方语言有不少人进行扩展,unity发展相对慢一些,下面就介绍如何根据官方文档进行自定义修改。本文实现了Unity Cesium的源码编译过程。有细心的开发者可能发现官方文档还有封装Cesium的步骤,这个贴下下面就不做演示了。
2023-08-30 11:06:20 1465 4
原创 unity强力配置插件Luban【Next最新版本】(一)部署
luban是一个强大、易用、优雅、稳定的游戏配置解决方案。它设计目标为满足从小型到超大型游戏项目的简单到复杂的游戏配置工作流需求。该项目在2023下半年进行了重构,旧版本命名为Classic版,新版为Next版。如果追求稳定建议使用Classic版,想学习使用可以参考我博客内的luban相关文章。Next版的意义是为了简化之前繁重的流程,将各种功能模块化、定制化,比以前更加轻量具有针对性,话不多说,走。快速上手新版luban,有多个项目需求的可以将精简的文件进行备份以便下次使用。
2023-08-22 18:16:01 3817 10
原创 Unity Cesium 加载本地数据(DEM、DOM)
cesium for unity自带数据源,联网状态下能够实时加载影响和地型等数据,十分方便。但不少项目需要离线使用,而官方只给出api并没有给出示例资源,这就需要我们自己处理数据进行加载。加载本地数据的原理非常简单,将资源转换到可用格式,然后发布成链接的形式,然后在对应的软件载体配置链接,即可看到效果。简单记录本地加载地形和影像数据。
2023-08-16 10:12:03 3607 27
原创 unity强力配置插件-Luban使用(三)多态
我们通常使用oop思想应对各种千奇百怪的需求,一般的配表只能使用单一的方式配置技能、ai等再让开发再次解析数据。luban不仅能实现list、map的多层嵌套,也能直接使用继承的方式快速实现类的多层嵌套,还使用限定类型来实现多态(不同类型使用同一接口),十分方便。1、excel方式定义分别定义项目需要的父类、子类,指定子类的父类。限定列格式2、xml方式定义官方示例。
2023-05-05 14:52:43 1664
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人