随笔分类 -  Unity学习笔记

摘要:2.3 3D游戏所需要的数学知识 2.3.1 向量 向量的加减法遵循平行四边形法则; 可以想象在Unity 中有两个单位向量,分别位于X轴和Y轴上,二者的和、差: Unity中物体的前后左右上下方向: 2.3.2 点乘 点乘是向量的数量积、也叫内积(外积是叉乘)。这里我们记住两点就好,(死去的高中知 阅读全文
posted @ 2025-09-16 22:30 畅知 阅读(157) 评论(0) 推荐(1)
摘要:2.2 编辑器本身的基础知识 项目顺利开发离不开对开发工具的打磨,为此需要对Unity Editor进行拓展功能的开发,包括一些诸如常量生成器这样辅助性的功能开发,以及通过引擎自带的插件与其他3D软件进行交互式编辑等,以提升开发效率。 2.2.1编辑器工具的编写 编辑器工具开发大致可分为脚本Insp 阅读全文
posted @ 2025-09-12 21:28 畅知 阅读(203) 评论(0) 推荐(0)
摘要:2.1 一些通用的预备知识: 2.1.1 使用协程分解复杂逻辑 试想一下如何实现一个简单的NPC人物行为,例如是村民。村民饿了会去吃饭,困倦了会去睡觉。上来上一个状态机?其实用不着这么复杂,可以使用协程来实现。 namespace LearnBook.Chapter2 { /// <summary> 阅读全文
posted @ 2025-09-09 23:20 畅知 阅读(258) 评论(0) 推荐(2)
摘要:Unity中的渲染路径 Unity的渲染路径 在Unity里,渲染路径(Rendering Path)决定了光照是如何应用到Unity Shader中的。因此,我们只有为Shader正确地选择和设置了需要的渲染路径,该shader的光照计算才可以被正确执行。 unity中的渲染路径: Forward 阅读全文
posted @ 2024-09-16 14:59 畅知 阅读(642) 评论(0) 推荐(3)
摘要:编辑器中获取选中的文件夹、文件路径 using UnityEditor; using UnityEngine; using Object = UnityEngine.Object; public class MyEditorScript { [MenuItem("Assets/PrintSelect 阅读全文
posted @ 2024-06-21 20:46 畅知 阅读(1203) 评论(0) 推荐(0)
摘要:[14]lua调用使用C#中的事件和委托 C#脚本:继续在Student类中声明 //声明委托和事件 public UnityAction dele; public event UnityAction eventAction; public void DoDele() { if (dele != n 阅读全文
posted @ 2024-05-25 16:32 畅知 阅读(157) 评论(0) 推荐(0)
摘要:[12] lua中调用ref 和 out 修饰参数的函数数值 public int RefCompute(int a, ref int b, ref int c, int d) { b += a; c += d; return b + c; } public int OutCompute(int a 阅读全文
posted @ 2024-05-23 23:28 畅知 阅读(82) 评论(0) 推荐(0)
摘要:[10]Lua脚本调用C#中的List和Dictionary 调用还是在上文中使用的C#脚本中Student类: lua脚本: print(" 访问使用C#脚本中的List和Dictionary ") student.list:Add(2024) student.list:Add(5) studen 阅读全文
posted @ 2024-05-18 23:03 畅知 阅读(189) 评论(0) 推荐(1)
摘要:[8]Lua脚本调用C#中的枚举学习 --调用枚举类型 print(" toLua中调用C#中枚举类型 ") PrimitiveType = UnityEngine.PrimitiveType local cubeObj = GameObject.CreatePrimitive(PrimitiveT 阅读全文
posted @ 2024-05-16 00:10 畅知 阅读(237) 评论(0) 推荐(1)
摘要:toLua中Lua调用C#: [7]Lua脚本调用C#中的class 准备工作: 1.调用lua脚本 2.绑定LuaState虚拟机,这样在lua脚本中才可以对C#脚本进行访问。 3.在lua中使用Debug打印信息,需要在自定义CustomSetting脚本中添加Debug,并生成wrap文件。 阅读全文
posted @ 2024-05-14 08:26 畅知 阅读(275) 评论(0) 推荐(0)
摘要:[6] C#访问调table类中的成员变量和函数 访问table中的变量和函数 lua中可以使用table作为class,因此对table中的函数访问调用是必要的根据前面对table访问和function的获取调用,这里尝试获取调用。 依然是如此,此种调用方式获取到的table中的函数是引用拷贝。 阅读全文
posted @ 2024-05-12 11:31 畅知 阅读(528) 评论(0) 推荐(1)
摘要:[5] 使用自定义lua解析管理器调用table 访问数组类型的table CallLuaEntrance测试脚本中内容: // 访问table //4.1 访问list/数组类型的table //获取table LuaTable luaTable = CallLuaManager.Instance 阅读全文
posted @ 2024-05-10 21:09 畅知 阅读(182) 评论(0) 推荐(0)
摘要:使用自定义委托通过tolua来调用多返回值和长参数类型的函数。 防踩坑指南,使用自定义委托需要将委托类型添加到CustomSettings中。 阅读全文
posted @ 2024-05-09 21:31 畅知 阅读(526) 评论(0) 推荐(1)
摘要:[0]toLua的导入 下载toLua资源包,访问GitHub项目地址,点击下载即可。 将文件导入工程目录中: 导入成功之后会出现Lua菜单栏,如未成功生成文件,可以点击Generate All 重新生成(注意很可能是路径问题导致的生成失败!) 之后就可以开始编写脚本执行第一个lua程序了! [1] 阅读全文
posted @ 2024-05-07 09:04 畅知 阅读(387) 评论(0) 推荐(0)
摘要:本文介绍AB包资源加载的6种方式,封装实现成单例工具类,方便在开发中进行调用。 阅读全文
posted @ 2024-05-03 11:11 畅知 阅读(528) 评论(0) 推荐(1)
摘要:AB包的依赖 接上一小结。 在这里我们新建一个红色材质球,赋值给Cube预制体。此时不对材质球进行AB包分类,再次进行打包。运行脚本,发现红色cube成功的从AB包中加载出来。尽管我们没有将cube所依赖的材质球进行打包分类,但是打包时候unity会自动将包中的物体相关依赖打入包中【图三所示】。对于 阅读全文
posted @ 2024-05-02 19:09 畅知 阅读(282) 评论(0) 推荐(0)
摘要:AssetBundle AB包是什么? AssetBundle又称AB包,是Unity提供的一种用于存储资源的资源压缩包。 Unity中的AssetBundle系统是对资源管理的一种扩展,通过将资源分布在不同的AB包中可以最大程度地减少运行时的内存压力,可以动态地加载和卸载AB包,继而有选择地加载内 阅读全文
posted @ 2024-05-01 23:52 畅知 阅读(384) 评论(0) 推荐(1)
摘要:EventListener和EventTrigger 控件自带组件的局限性 其实我们常见的复合控件只提供一些简单的事件监听,如按钮有点击抬起的监听,对长按等其他交互方式的事件监听不大支持。 NGUI的监听函数 给NGUI对象添加Collider,在其挂载的脚本中编写对应的NGUI的函数,在运行时候会 阅读全文
posted @ 2024-03-06 18:18 畅知 阅读(185) 评论(3) 推荐(0)
摘要:ScrollView 练习使用场景搭建: 直接在NGUI中新建ScrollView组件(与Button等其它依赖基本组件存在的组件不同,此组件是单独存在的组件) 新建sprite作为其子组件,注意!子组件上需要挂在Collider和DragScrollView脚本,才可以实现鼠标拖拽查看功能 Scr 阅读全文
posted @ 2024-03-05 20:41 畅知 阅读(76) 评论(0) 推荐(0)
摘要:Label NGUI中用来显示字体的组件内容。 其主要设置参数如下图: 开启富文本功能之后,可以根据不同的格式来对文字进行控制。 提示:在给Label等其它NGUI添加Collider时候,通过NGUI选项中添加,其碰撞体大小会符合组件的大小。 在使用超链接时候,需要给Label添加Collider 阅读全文
posted @ 2024-03-03 23:53 畅知 阅读(111) 评论(0) 推荐(0)