Unity应用及扩展
文章平均质量分 72
GarFe-Liu
一入IT深似海,程序猿、攻城狮、努力一把架构师,经理干一条,总监搭台子,技术远景CTO
展开
-
Unity Animation动画播放控制
Unity动画控制,停在某一帧,可以结合线性驱动或环形驱动,播放动画到指定进度。原创 2023-12-27 15:06:20 · 1179 阅读 · 0 评论 -
Unity、C#实用小功能
日常开发中,一些实用的一些小功能,比如各进制转换,计算内存地址什么的。原创 2023-08-22 14:04:16 · 356 阅读 · 0 评论 -
Unity AssetBundleBrowser插件
1. AB包可以存储绝大部分Unity资源但无法直接存储C#脚本,所以代码的热更新需要使用Lua或者存储编译后的DLL文件,还有HybridCLR热更新插件,代码资源都可以热更。2. AB包不能重复进行加载,当AB包已经加载进内存后必须卸载后才能重新加载。3. 多个资源分布在不同的AB包可能会出现一个预制体的贴图等部分资源不在同一个包下,直接加载会出现部分资源丢失的情况,即AB包之间是存在依赖关系的,在加载当前AB包时需要一并加载其所依赖的包。4. 打包完成后,会自动生成一个主包(主包名称随平台不同而不同)原创 2023-07-26 09:49:51 · 869 阅读 · 0 评论 -
Unity 接入HybridCLR的点点滴滴,亲测三平台(PC、Android、WebGL)妥妥的。-问题分享
一入热更深似海啊,没有热更是真恼火啊,干啥啥不方便,动不动就得重新发包;说实在的,也是工作之余研究这个,在原有框架基础上接入这个热更,既要保持原有功能,还要支持热更,实实在在、断断续续搞了这么久,终于是接入并测通了,这一路是坎坎坷坷,下面把走过的弯弯绕绕记录下,希望对后来想接入的小伙伴有帮助吧。原创 2023-07-06 23:37:03 · 8530 阅读 · 2 评论 -
Unity 热更新 HybridCLR 对接到项目中
到这里,我们没有重新发布工程,就可以更新程序集里逻辑(看到了我们修改后的日志信息),说明我们热更新(HybridCLR)成功了。1.在HybridCLR示例项目中,Main程序集是源工程,没有加入到热更新里,所以在Mian程序集里的代码逻辑是不能热更新的,这也是一个项目框架设计时要注意的,因为Mian程序集中有LoadDll. cs,在这里处理的热更新程序集的加载,所以这里的变动会直接影响到后续是否要重新打包。LInkXml: 生成LInkxml文件(这里记录了项目中所有用到的基础程序集-(Sys原创 2023-05-07 23:37:27 · 5546 阅读 · 7 评论 -
Unity UGUI FQA
1.UI界面中,按钮点击选中后,再点击别的地方,该按钮的选中效果会消失。将按钮组件上的导航navigation设置为none即可。原创 2023-04-26 17:38:27 · 301 阅读 · 0 评论 -
Unity 各版本下载方法
重点是,一台Pc只允许安装一个UnityHub,一般的cker是指定的Unity版本启动文件和指定的Hub版本,安装完就是一个版本,再换Unity版本,发现不是Unity的cker不对就是hub版本不对,总是这样那样的问题,(这个前提是你想使用cker方式-懂得都懂哈,如果你使用官方个人版,就没这个问题了,直接官网下载hub,在hub里现在你需要的版本即可)。正确使用网络资源,获取到自己想要的hub版本,然后推荐一个cker的git,希望你可以帮助你,拿到hub的cker。原创 2023-04-26 15:46:18 · 8321 阅读 · 2 评论 -
Unity 热更新 之 huatuo(HybridCLR)
一句话说说huatuo和Hybridclr:huatuo是途游开源的,之前hybird的作者在途游,后来开源华佗,后来被途游收回,就写了hybirdCLR;huatuo热更新是基于IL2CPP VM这个环节来的,和其他热更技术不同;Lua方案:Lua内置Lua虚拟机 + Lua代码 (是在Native excutable asm 环节)ILRuntime方案:内置C#虚拟机 + 解释执行ILRuntime(是在Native excutable asm 环节)原创 2023-05-06 00:02:33 · 9224 阅读 · 1 评论 -
Unity中 Prefab导出FBX
Unity 已经在Package Manager中集合了很多实用的插件,比如这里用到的FBX Exporter.也可以在你的 Hierarchy窗口中,选择你要到处的Prefab,右击选择Export To FBX...在Unity的菜单中Window ----> Package Manager,打开包管理界面。导出完成后,打开你的的导出目录,就可以看到导出的fbx了。选中你需要导出的文件 ,就可以直接导出FBX文件了,这里注意导出名字和导出路径,和选项里的导出格式。原创 2023-04-21 11:45:43 · 5529 阅读 · 2 评论 -
Unity坐标系、相互转换和相对自身的方位及角度。
注:鼠标位置坐标属于屏幕坐标,Input.mousePosition可以获得该位置坐标,手指触摸屏幕也为屏幕坐标,Input.GetTouch(0).position可以获得单个手指触摸屏幕坐标。以像素来定义的,以屏幕的左下角为(0,0)点,右上角为(Screen.width,Screen.height),Z的位置是以相机的世界单位来衡量的。这个坐标系与屏幕坐标系相似,不同的是该坐标系以屏幕的左上角为(0,0)点,右下角为(Screen.width,Screen.height)。将全局坐标转换为视口坐标。原创 2023-04-03 22:23:05 · 5105 阅读 · 0 评论 -
Unity游戏开发--AIMonster(怪物巡逻)
Demo中,需要控制的玩家(Tag设置为Player),然后是怪物,代码中通过状态机切换实现怪物的不同状态(Animator),然后把脚本附加在怪物上就可以。追击半径,怪物追击玩家时,自身不会超出这个范围,超出后跑回出生点,可以理解为最大活动范围。比较合理的关系是:追击半径>警戒半径>自卫半径>攻击距离,游走半径只需要小于追击半径即可。警戒半径,当玩家与怪物之间距离小于警戒半径时进入警戒状态,根据怪物实时位置计算。游走半径,待机状态下,怪物游走时不会超出这个范围,根据出生点计算。追击状态(怪物跑向玩家)原创 2023-03-30 00:01:08 · 1535 阅读 · 0 评论 -
Unity-Coroutine(协同)
4.yield return new WaitForEndOfFrame() 等待该帧所有Camera和GUI对象渲染完毕,在帧显示在屏幕之恢复执行前面的代码。6.yield return StartCoroutine(MyFunc()) 等待协程结束在执行。(5)Update()和FixedUpdate()函数不可以用yield,但可以启动协程。(2)协程的参数:不能加关键字out ref(这两个关键字在c#里的作用:)(1)协程的返回值:IEnumerator(必须返回这个)原创 2023-03-30 00:04:12 · 131 阅读 · 0 评论 -
Unity3D-DynamicBone动力学骨骼插件-详解
首先给模型的根目录附加脚本DynamicBone脚本,然后给Root添加软体骨骼父目录,如果软体骨骼摆动会碰撞到身体部位,那就跟不允许(碰撞)穿透的部位,附加DynamicBoneCollider脚本。3.Colliders放入要进行碰撞的骨骼数组,该骨骼上要放上DynamicBoneCollider组建。其他的参数都很简单,一看就知道怎么用了,这个插件东西不多但是效果不错,很好用。UpdateRate:更新数率。damping:阻尼系数。Elasticty:弹力。inert:迟钝系数。原创 2023-03-30 00:03:48 · 1525 阅读 · 0 评论 -
Unity3D-场景中3D物体添加点击事件
这两种触发的原理是不同的,不论哪种触发都必须满足触发的要求才可以,既然原理不同,触发的要求也不一样,下面详细说明一下3种不同的方式。动态触发,在Unity编辑器中操作就方便多了,只需要在被点击物体上添加EventTrigger就可以了,然后再把我们的脚本ClickEventTrigger.cs添加到被点击物体上,剩下的都在代码中完成。这个方法主要是通过,射线发射,判断射线穿过的物体,根据特定的标志来判断是否点击到了该物体(比如:物体的标签Tag,还有物体的名称)原创 2023-03-30 00:00:21 · 2650 阅读 · 0 评论 -
Unity资源管理(AssetBundle加载和卸载)及内存管理(内存的申请和释放)
Instantiate的过程是一个对Assets进行Clone(复制)和引用相结合的过程,Clone的过程需要申请内存存放自己的数据,而引用的过程只需要直接一个简单的指针指向一个已经Load的资源即可。另外需要注意,系统在加载新场景时,所有的内存对象都会被自动销毁,这包括了Resources.Load加载的Assets, 静态绑定的Assets,AssetBundle.Load加载的资源和Instantiate实例化的对象。释放AssetBundle文件本身的内存镜像,但不销毁加载的Asset对象。原创 2023-03-29 23:12:26 · 6060 阅读 · 1 评论 -
UnityAPI---Application类(数据文件路径)
不过两者也有很大的区别,那就是Resources文件夹中的内容在打包时会被压缩和加密。persistentDataPaht返回的是一个持久化数据存储目录,权限为只读,在同一平台,不用的应用程序访问此属性返回值相同,但是不同的平台就不相同了。它作为一个Unity3D的保留文件夹出现的,也就是如果你新建的文件夹的名字叫Resources,那么里面的内容在打包时都会被无条件的打到发布包中。dataPaht是包含游戏数据文件夹的路径,权限为只读,返回的是一个相对路径,即对于不同的游戏平台返回的路径是不一样的。原创 2023-03-29 23:11:39 · 4784 阅读 · 0 评论 -
Unity调用Windows弹框(User32.dll/System.Windows.Forms.dll)
switch (MsgBoxBase.Show("Chinar,是 | 否,灯泡", GetType().Name, WinForms.MessageBoxButtons.YesNo, WinForms.MessageBoxIcon.Information))MsgBoxBase.Show("Chinar,OK按钮,警告", GetType().Name, WinForms.MessageBoxButtons.OK, WinForms.MessageBoxIcon.Warning);print("对");原创 2023-03-29 23:06:29 · 3047 阅读 · 3 评论 -
Unity中读取Pc的硬件信息---SystemInfo
每一台设备都有唯一的标识符。DeviceType deviceType:(只读)返回程序运行所在的设备类型(PC电脑、掌上型等)。bool supportsRenderToCubemap:(只读)是否支持立方体纹理。bool supports3DTextures:(只读)是否支持3D(体积)纹理。bool supportsRenderTextures:(只读)是否支持渲染纹理。bool supportsSparseTextures:(只读)是否支持稀疏纹理。原创 2023-03-29 22:39:02 · 1658 阅读 · 0 评论 -
Unity介绍、C#基础大纲
.NET Framework的体系结构,公共语句运行库,通用类型系统,公共语言规范,. NET应用程序执行步骤,熟悉Visual Studio 开发环境。if语句,switch语句,while语句,for循环,continue语句,break语句,以及循环嵌套等等。理解C#中的类和对象,掌握使用C#中的构造函数和析构函数,掌握C#中的访问修饰符,掌握方法的使用,理解命名空间。主要讲解变量和常量,引用类型和值类型,基本数据类型,运算符,表达式,类型转换相关知识。原创 2023-03-28 23:12:44 · 1323 阅读 · 0 评论