Unity脚本
文章平均质量分 81
七七喝椰奶
基本功决定高度
展开
-
UnityAI——个体AI角色的操控行为脚本
注:本文用到了前文所用的基类在一些游戏中,可能会遇到想让AI角色追逐或者避开玩家的情况。如在飞机模拟游戏中,让导弹跟踪和进攻玩家或玩家的飞行器。这种情况下,可以运用本节介绍的技术。原创 2023-11-03 14:11:01 · 562 阅读 · 0 评论 -
Unity——对象池
对象池是一种朴素的优化思想。在遇到需要大量创建和销毁同类物体的情景时,可以考虑使用对象池技术优化游戏性能。原创 2023-09-21 00:04:27 · 428 阅读 · 0 评论 -
C#的反射机制
当谈到C#的反射机制时,它提供了一种地在运行时获取和操作类型信息的能力。通过反射,可以,使用类型信息来创建对象、调用方法、访问属性和字段等。需要注意的是,反射机制具有一定的性能开销,并且不够安全。因此,建议在必要的情况下使用反射,并且小心处理与类型相关的异常。原创 2023-08-31 10:30:37 · 1103 阅读 · 0 评论 -
Unity 事件系统
简介:EventSystem提供了一种向游戏物体发送消息的途径,这些物体通常是输入信息,包括键盘、鼠标、触摸和自定义输入事件。它包含了一系列组件,它们互相配合,以达到管理和触发器事件的功能。如果查看物体的EventSystem,会发现可调参数并不多,这是因为EventSystem本身被设计为一种管理器,而不是事件的具体处理者。原创 2023-05-27 11:05:06 · 1898 阅读 · 1 评论 -
Unity 操作常用控件(下)
实际制作时,可以借用默认的Content物体,将图片、文字等内容作为Content的子物体,然后计算并设置Content的大小,让Content的大小刚好能容纳所有内容,这样就可以实现滚动浏览所有内容的效果了。用户在输入文字的时候,就会用到Input Field,它也是由父子物体组成的,简单来说父物体上的Input Field用来定义外观、处理输入,而文本显示则由子物体的Text属性负责。它在编辑器中提供的操作和按钮组件的非常相似,同样也有Transiiton选项,也具有几种切换外观状态的方法。原创 2023-05-25 16:10:11 · 2776 阅读 · 0 评论 -
Unity 用脚本操作常用UI控件(上)
要想理解Canvas存在的必要性,便需要知道在一个游戏中,它和普通物体不同,界面上各种控件的布局会更复杂一些,如需要考虑位置对齐、适配、缩放等实际情况。因此,一般来说所有UI控件都必须是Canvas的子物体,这样才能方便统一布局。另外,Unity也允许存在多个Canvas,形成多个独立的界面层。例如,游戏中人物的血条就可以放在单独的Canvas中表示,但是过多的Canvas会影响游戏性能。EventSystem代表着事件系统。UI系统一定会用到事件系统,例如单机按钮、输入文字等操作都需要事件系统的辅助。原创 2023-05-21 17:02:54 · 2354 阅读 · 0 评论 -
Unity 向量
向量的加减法本文就不再赘述了,本文侧重介绍脚本中的向量写法。原创 2023-05-12 14:37:37 · 1658 阅读 · 9 评论 -
Unity物理系统脚本编程(下)
物理材质是配合碰撞体使用的。碰撞体有一个Material属性,将创建好的物理材质拖拽到该属性上即可指定该属性。不指定任何物理材质时,碰撞体具有默认的物理材质。原创 2023-05-09 19:08:09 · 894 阅读 · 0 评论 -
Unity射线编程详解
中对射线检测编程的补充。原创 2023-05-09 17:43:27 · 1182 阅读 · 0 评论 -
Unity物理系统脚本编程(上)
常用的直线型射线用类型Ray表示。Ray包含了origin(起点)和direction(方向)的定义,起点和方向都用Vector3表示。有很多方法可以在游戏事件中发射一条射线,最常用的方法是Physics.Raycast()和Physics.RaycastAll()。原创 2023-05-09 15:46:10 · 2026 阅读 · 0 评论 -
Unity用脚本创建物体
引言:在游戏设计中,需要用到的物体都可以用编辑器放在场景中。但很多时候,无法事先创建所有需要的物体,如子弹、刷新的怪物之类。这些要么是根据玩家操作而随时创建,要么是根据游戏玩法在特定时刻创建,都无法事先确定它们在什么时候出现。而用脚本创建物体,即在游戏进行中创建物体,是一项基本技能,本文将详细讲解实现这一功能的基本方法。原创 2023-05-07 14:27:21 · 4756 阅读 · 0 评论 -
Unity用脚本获取物体和组件(下)
仔细观察Hierarchy窗口会发现,其实拥有大量“父子关系”的物体已经构成了树形结构。在Unity中,“父子关系”的表达是Transform组件的职责。下表列出了在父子节点之间查找物体的相关方法和属性Transform组件中与查找物体相关的方法参数:以字符串表示一个路径。与文件路径类似,可以通过给定的路径信息,灵活找到任意其他物体。返回值:找到物体的Transform组件。如果没找到,返回null。参数:一个整数,从0开始,表示要查找的子物体的序号。原创 2023-05-06 20:11:21 · 1035 阅读 · 0 评论 -
Unity 用脚本获取物体和组件(上)
一个游戏物体是一个对象;没有被刮倒物体上的脚本,是一个违背是梨花的泪,暂时还不是具体的对象;当脚本被挂到物体上后,就成了一个实实在在的对象。脚本在执行时,一般已经挂到了某个帝乡上。因此在脚本代码中,可以随时访问脚本目前挂到了那个对象上,直接用gameObject就行下面两个都可以,可以被省略。原创 2023-05-05 17:20:14 · 3967 阅读 · 0 评论 -
Unity重置场景
SceneManager这个类是属于UnityEngine.ScienceManagement的,因此要添加头部引用后才能调用ScenceManager.LoadScence(0)这个方法。Time.timeScale表示游戏的运行时间倍率,设置为0即表示游戏里的时间停滞,1表示正常的时间流逝速度,2即两倍于正常的时间流逝速度,以此类推。上述便是一个以R键为重置按键的例子(只有一个游戏场景的情况下)。这里参数0表示场景的序号。原创 2023-05-04 00:09:50 · 1024 阅读 · 0 评论 -
触发器事件
碰撞检测是很游戏里的一个功能,在早期的游戏里,是直接判断物体之间的距离来实现的。不过,Unity等现代游戏引擎给出了更同意、更简便的方法——使用触发器。原创 2023-04-30 16:43:45 · 260 阅读 · 0 评论 -
控制物体的运动相关脚本
用于向Console(控制台)窗口输出一串信息。例如:在Start函数中加入:Debug.Log("组件执行开始函数");在Update函数中加入:Debug.Log("当前游戏进行时间:"+Time.time);运行游戏,选择主菜单的Window->General->Connsole,Console窗口中会产生大量信息罚下开始函数值执行了一次,后民的都是Update函数调用时输出的,会发现时间的流逝不太稳定,特别是在游戏启动的时候偏差较大。原创 2023-04-30 15:59:00 · 160 阅读 · 0 评论 -
脚本中的几个函数
本机玩家循环中的更新阶段。这是本机玩家循环中的更新阶段的 C# 表示形式。它只能用于在本机标识更新阶段。原创 2023-04-30 00:32:27 · 84 阅读 · 0 评论