Unity3D

A collection of 1256 posts
Unity3D

Unity3D :设置分析

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 设置分析 注意:游戏服务分析现已作为预览包提供。游戏服务分析是一项改进的产品,可让您轻松了解游戏性能和玩家行为,以便做出战略决策。查看文档。 为 Unity 服务配置项目后,可以启用分析服务。要在项目中启用 Unity IAP,请执行以下操作: 1. 打开“服务”窗口(“常规>服务”窗口>然后单击“分析”。 2. 在“项目设置”菜单的“分析”部分中,单击“关闭”按钮以启用该服务。 然后,您必须单击编辑器中的“播放”按钮来验证项目与 Unity Analytics 的连接。 由3D建模学习工作室整理翻译,转载请注明出处! 上一篇:Unity3D :分析概述 (mvrlink.
1 min read
Unity3D :分析概述
Unity3D

Unity3D :分析概述

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 分析概述 注意:游戏服务分析现已作为预览包提供。游戏服务分析是一项改进的产品,可让您轻松了解游戏性能和玩家行为,以便做出战略决策。查看文档。 Unity Analytics 可提供所需的数据来管理您与玩家的关系。 了解您的玩家,了解他们为什么要玩您的游戏,了解他们为什么不再玩您的游戏。 应根据数据而不是猜测来做决定。 只需在项目中启用 Unity Analytics,即可获取首次开始玩游戏的人数、每天玩游戏的人数、在指定月份玩游戏的人数以及其他基于会话的使用数据。 如果您还使用 Unity Ads 和 IAP 服务,则 Analytics 数据会自动包含这些来源的收入。 此类会话数据提供了游戏运营情况的重要信息。 通过这些数据可以解答如下问题:“我是否在不断迎来新玩家? ”、“他们玩游戏的频度和时长如何? ”、“他们第二天还会玩吗? 下周呢? 下个月呢? ”、“我具体一天从每名玩家获得的收入是多少? ” 您通过玩家在游戏中执行关键操作时分发标准 Analytics 事件,即可扩展可用的 An
13 min read
Unity3D :将项目转移到新组织
Unity3D

Unity3D :将项目转移到新组织

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 将项目转移到新组织 要将 Unity 项目从一个组织转移到另一个组织,您必须是这两个组织的所有者或管理员。应通过 Unity 开发者控制面板 (Developer Dashboard) 执行此操作。 注意:此过程无需禁用 Unity 服务。 从开发者控制面板 (Developer Dashboard) 的 Projects 列表中,找到要转移的项目,然后选择 View。 在左侧导航栏上选择 Settings__,然后从下拉选项中选择 General__。 选择 Transfer this project to another organization 下拉列表,然后从列表中选择目标组织并单击 Transfer。 由3D建模学习工作室整理翻译,转载请注明出处! 上一篇:Unity3D :管理组织的项目 (mvrlink.com) 下一篇:
2 min read
Unity3D

Unity3D :管理组织的项目

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 管理组织的项目 创建新项目时,会将其分配给组织。如果尚未创建任何其他组织,则会自动将其分配给默认组织。如果您的帐户可以使用多个组织,则可以选择使用哪个组织。因此,项目将继承其组织的角色设置。但是,如果用户需要访问某些工具或信息,您可以为他们提供每个项目独有的不同角色,而无需在整个组织的所有项目中授予可见性。有关更多信息,请参阅__管理您的组织__中的 Members & Groups。 组织所有者还可以使用以下工具来管理项目: * 存档和恢复项目 * 更改项目名称 * 将项目转移到新组织 存档和恢复项目 不能删除项目,否则可能会导致控制面板上出现混乱。为了减少混乱,可对不再使用的项目进行存档。项目存档后便不再显示在 Projects 列表中。 要对项目存档,请执行以下操作: 1.登录 Unity Dashboard。 2.选择要存档的项目。 3.在左侧导航面板中,单击 Settings > General。 4.在
2 min read
Unity3D

Unity3D :管理您的组织

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 管理您的组织 要创建或管理组织,请登录 Unity ID 控制面板,然后从左侧导航栏中选择 Organizations。 创建组织 可使用“组织”根据目标开发实体来隔离项目。根据需要,可以创建任意数量的组织。为了分开不同公司的活动或个人使用活动,请为每个实体使用单独的组织。 通过组织对活动进行分隔还有助于顺利实现人员变更。例如,如果员工从公司离职,您可以重新分配他们的席位,因为订阅与组织关联而不是与用户相关联。 要新建组织,请执行以下操作: 1.登录 Unity ID 控制面板。 2.在左侧导航栏中,单击 Organizations。 3.在 Organizations 面板中,单击 Add new 按钮。 4.在 Organization Name 文本字段中,输入组织名称,
7 min read
Unity3D

Unity3D :订阅和席位

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 订阅和席位 要使用 Unity Editor 和 Services,必须创建 Unity Developer Network (UDN) 帐户。 创建帐户时,您将获得: * 一个默认组织 * 组织中的 Unity 个人订阅(许可证) * 订阅许可证的一个 Editor 席位 如果您不符合使用个人订阅的条件,则必须升级到 Unity Plus 或 Pro 订阅。订阅 Plus 或 Pro 时,您将获得: * 附加到帐户相关组织的一份订阅(许可证)。 * 订阅许可证的一个 Editor 席位 您可以通过 Unity ID 仪表板上的组织购买其他订阅。如果您是公司的一部分,这使您可以在公司组织下组织许可证,
4 min read
Unity3D :耦合动画和导航
Unity3D

Unity3D :耦合动画和导航

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 耦合动画和导航 本文档的目标是指导您设置人形角色的导航以使用导航系统进行移动。 我们将使用 Unity 的内置动画和导航系统以及自定义脚本来实现这一目标。 本文假设您已熟悉 Unity 和 Mecanim 动画系统的基础知识。 此处提供了一个示例项目,因此无需从头开始添加脚本或设置动画和动画控制器: * NavigationAnimation_53.zip 适用于 Unity 5.3+ 创建动画控制器 为了获得响应迅速且多功能的动画控制器(涵盖各种动作),我们需要一组向不同方向移动的动画。有时将其称为扫射集 (strafe-set)。 除了移动动画,我们还需要一段站立角色的动画。 我们继续将扫射集组织在 2D 混合树中;选择混合类型:2D Simple Directional,并使用 Compute Positions > Velocity XZ 放置动画 为进行混合控制,我们添加两个浮点参数 velx 和 vely,并将它们分配给混合树。
8 min read
Unity3D

Unity3D :在一组点之间进行代理巡逻

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 在一组点之间进行代理巡逻 许多游戏都有 NPC 负责在游戏区域周围自动巡逻。使用导航系统可实现此行为,但它比标准寻路方法稍微复杂一些;标准寻路方法仅使用两点之间的最短路径就可以实现有限且可预测的巡逻路线。为获得更有说服力的巡逻模式,可保留一组“有用”的关键点让 NPC 以某种顺序通过并访问它们。例如,在迷宫中,可将关键巡逻点放置在交叉点和拐角处,从而确保代理检查每个走廊。对于办公楼,关键点可能是各个办公室和其他房间。 理想的巡逻点序列将取决于所需的 NPC 行为方式。例如,机器人可能只是按照有条不紊的顺序访问这些点,而人类守卫可能会尝试通过使用更随机的模式来发现玩家。可使用下面显示的代码实现机器人的简单行为。 应使用公共变换数组将巡逻点提供给脚本。可从检视面板分配此数组,并使用游戏对象来标记巡逻点的位置。GotoNextPoint 函数可设置代理的目标点(也开始移动代理),然后选择将在下次调用时使用的新目标。就目前而言,该代码将按照巡逻点在数组中出现的顺序循环遍历巡逻点,但您可以轻松修改这种设置
3 min read
Unity3D

Unity3D :将代理移动到鼠标单击的位置

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 将代理移动到鼠标单击的位置 此脚本允许通过在对象表面上单击鼠标来选择导航网格上的目标点。单击位置由_射线投射_确定,而非像将激光束指向对象来查看其所在位置(有关此技术的完整描述,请参阅摄像机射线页面)。由于 GetComponent 函数的执行速度相当慢,因此该脚本在 Start 函数期间将其结果存储在变量中,而不是在 Update 中重复调用它。 // MoveToClickPoint.cs using UnityEngine; using UnityEngine.AI; public class MoveToClickPoint : MonoBehaviour { NavMeshAgent agent; void Start() { agent = GetComponent();
1 min read
Unity3D

Unity3D :告诉导航网格代理移动到目标位置

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 告诉导航网格代理移动到目标位置 只需将 NavMeshAgent.destination 属性设置为您希望代理移动到的点,即可告诉代理开始计算路径。计算完成后,代理将自动沿路径移动,直至到达目标位置。下面的代码实现了一个简单的类,该类使用一个游戏对象来标记在 Start 函数中分配给 destination 属性的目标点。请注意,该脚本假定您已从 Editor 中添加并配置了导航网格代理 (NavMeshAgent) 组件。 // MoveDestination.cs using UnityEngine; public class MoveDestination : MonoBehaviour { public Transform goal; void Start () { NavMeshAgent agent = GetComponent
1 min read
Unity3D :网格外链接 (Off-Mesh Link)
Unity3D

Unity3D :网格外链接 (Off-Mesh Link)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 网格外链接 (Off-Mesh Link) OffMeshLink 组件允许您合并无法使用可行走表面来表示的导航捷径。例如,跳过沟渠或围栏,或在通过门之前打开门,全都可以描述为网格外链接。 属性 属性功能Start描述网格外链接起始位置的对象。End描述网格外链接起始位置的对象。Cost Override如果值为正,则在计算处理路径请求的路径成本时使用该值。否则,使用默认成本(此游戏对象所属区域的成本)。如果 Cost Override 设置为值 3.0,则在网格外链接上移动的成本将是在默认导航网格区域上移动相同距离的成本的三倍。如果希望让代理通常优先选择步行,但当步行距离明显更长时使用网格外链接,则 Cost Override 设置将变得有用。Bi-Directional如果启用此属性,则可以在任一方向上遍历链接。否则,只能按照从 Start 到 End 的方向遍历链接。Activated指定寻路器 (pathfinder) 是否将使用此链接(如果将此属性设置为 false,则将忽略它)。A
3 min read
Unity3D :导航网格障碍物 (Nav Mesh Obstacle)
Unity3D

Unity3D :导航网格障碍物 (Nav Mesh Obstacle)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 导航网格障碍物 (Nav Mesh Obstacle) 导航网格障碍物 (Nav Mesh Obstacle) 组件允许您描述导航网格代理在世界中导航时应避开的移动障碍物(例如,由物理系统控制的木桶或板条箱)。当障碍物正在移动时,导航网格代理会尽力避开它。当障碍物静止时,它会在导航网格中雕刻一个孔。导航网格代理随后将改变它们的路径以绕过障碍物,或者如果障碍物导致路径被完全阻挡,则寻找其他不同路线。 属性功能Shape障碍物几何体的形状。选择最适合对象形状的选项。    Box        Center盒体的中心(相对于变换位置)。        Size盒体的大小。    Capsule        Center胶囊体的中心(相对于变换位置)。        Radius胶囊体的半径。        Height胶囊体的高度。Carve勾选 Carve 复选框后,导航网格障碍物会在导航网格中创建一个孔。    Move Threshold当导航网格障碍物的移动距离超过 Move Thresho
6 min read
Unity3D :导航网格代理 (NavMesh Agent)
Unity3D

Unity3D :导航网格代理 (NavMesh Agent)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 导航网格代理 (NavMesh Agent) NavMeshAgent 组件可帮助您创建在朝目标移动时能够彼此避开的角色。代理 (Agent) 使用导航网格来推断游戏世界,并知道如何避开彼此以及其他移动障碍物。寻路和空间推断是使用导航网格代理的脚本 API 进行处理的。 属性 属性功能Agent SizeRadius代理的半径,用于计算障碍物与其他代理之间的碰撞。Height代理通过头顶障碍物时所需的高度间隙。Base offset碰撞圆柱体相对于变换轴心点的偏移。SteeringSpeed最大移动速度(以世界单位/秒表示)。Angular Speed最大旋转速度(度/秒)。Acceleration最大加速度(以世界单位/平方秒表示)。Stopping distance当靠近目标位置的距离达到此值时,代理将停止。Auto Braking启用此属性后,代理在到达目标时将减速。对于巡逻等行为(这种情况下,代理应在多个点之间平滑移动)应禁用此属性Obstacle AvoidanceQuality障碍
4 min read
Unity3D

Unity3D :导航网格代理与其他组件结合使用

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 导航网格代理与其他组件结合使用 您也可以将导航网格代理 (NavMesh Agent)、导航网格障碍物 (NavMesh Obstacle) 和网格外链接 (Off Mesh Link) 组件与其他 Unity 组件一起使用。此处列出了混用不同组件时的一些注意事项。 导航网格代理和物理组件 * 无需向导航网格代理添加物理碰撞体来让它们彼此避开 * 也就是说,导航系统会模拟代理及其对障碍物和静态世界的反应。此处所说的静态世界是指烘焙的导航网格。 * 如果希望导航网格代理推开物理对象或使用物理触发器: * 添加碰撞体 (Collider) 组件(如果不存在) * 添加刚体 (Rigidbody) 组件 * 启用运动学 (Is Kinematic) - 这很重要! * 运动学意味着刚体由物理模拟以外的其他事物控制 * 如果导航网格代理和刚体(非运动学)同时处于激活状态,表示存在竞争条件 * 两个组件都可能尝试移动相同位置的代理,从而导致不明行为 * 可使用导航网格代理移动玩家角色
4 min read
Unity3D :使用附加加载 (Additive Loading) 加载多个导航网格
Unity3D

Unity3D :使用附加加载 (Additive Loading) 加载多个导航网格

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 使用附加加载 (Additive Loading) 加载多个导航网格 默认情况下,不同场景中的导航网格未连接。使用 Application.LoadLevelAdditive() 加载另一个关卡时,需要使用网格外链接 (Off-Mesh Link) 连接不同场景中的导航网格。 在此示例中有两个场景:_Scene 1_ 和 Scene 2。Scene 1 有一个网格外链接从一个可行走区域开始,并在 Scene 2 中的一个可行走区域上着陆。可根据需要设置多个连接场景的网格外链接。 在创作时,连接场景的网格外链接的另一个端点是未连接的。加载新场景后将重新连接网格外链接。 如果多个场景的导航网格在同一区域重叠,则位置选取对象可能是该位置的任意导航网格。此情况适用于使用导航网格 API 的代理、网格外链接和位置选取。应该创建跨越网格外链接的场景,使这些链接仅在一个导航网格上明确开始和结束。重叠的导航网格区域不会自动连接。 由3D建模学习工作室整理翻译,转载请注明出处! 上一篇:Unity3D :导
2 min read
Unity3D :构建高度网格以准确放置角色
Unity3D

Unity3D :构建高度网格以准确放置角色

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 构建高度网格以准确放置角色 高度网格 (Height Mesh) 可用于将角色更准确地放置在可行走表面上。 在导航时,导航网格代理 (NavMesh Agent) 被约束在导航网格的表面上。由于导航网格是可行走空间的近似形状,因此在构建导航网格时会使某些特征扁平化。例如,楼梯可能在导航网格中显示为斜坡。如果游戏需要准确放置代理,则应在烘焙导航网格时启用 Height Mesh 构建。可在 Navigation 窗口的 Advanced 设置下找到该设置。请注意,构建高度网格将在运行时占用内存和处理资源,并需要稍微更长一点的时间来烘焙导航网格。 由3D建模学习工作室整理翻译,转载请注明出处! 上一篇:Unity3D :自动构建网格外链接 (mvrlink.com) 下一篇:Unity3D :导航区域和成本 (mvrlink.com)
1 min read
Unity3D :自动构建网格外链接
Unity3D

Unity3D :自动构建网格外链接

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 自动构建网格外链接 可自动检测网格外链接 (Off-Mesh Link) 的一些用例。两个最常见的用例为:_掉下 (Drop-Down)_ 和_跳过 (Jump-Across)_。 * 掉下链接的作用是从平台上掉下。 * 跳过链接的作用是跳过缝隙。 为了自动找到跳跃位置,构建过程沿着导航网格的边缘行走,并检查跳跃的着陆位置是否在导航网格上。如果跳跃轨迹畅通无阻,则会创建网格外链接。 让我们来设置网格外链接的自动生成。如果您不熟悉导航网格烘焙,请查看构建导航网格。 首先,需要标记场景中的跳跃_起始位置_对象。为此,需要在 Navigation 窗口_中的 Objects_ 选项卡下选中 Generate Off-Mesh Links 选项。 第二步是设置掉下和跳过轨迹: * 掉下链接的生成由 Drop Height 参数控制。该参数可控制将要连接的最高掉落高度,将值设置为 0 将禁用生成。 * 定义掉下链接的轨迹时应使水平行程
3 min read
Unity3D :创建网格外链接
Unity3D

Unity3D :创建网格外链接

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 创建网格外链接 网格外链接 (Off-Mesh Link) 用于创建穿过可步行导航网格表面外部的路径。例如,跳过沟渠或围栏,或在通过门之前打开门,全都可以描述为网格外链接。 我们将添加一个网格外链接组件来描述从上层平台到地面的跳跃。 1. 首先创建两个圆柱体:__Game Object > 3D Object > Cylinder__。 2. 可将圆柱体的比例设置为 (0.1, 0.5, 0.1) 以便于使用它们。 3. 将第一个圆柱体移动到上层平台的边缘,靠近导航网格表面。 4. 将第二个圆柱体放在地面上,靠近导航网格,在链接应着陆的位置。 5. 选择左侧的圆柱体,并为其添加网格外链接组件。从 Inspector 中选择 Add Component,然后选择 Navigation > Off Mesh Link。
2 min read
Unity3D :创建导航网格障碍物
Unity3D

Unity3D :创建导航网格障碍物

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 创建导航网格障碍物 导航网格障碍物 (NavMesh Obstacle) 组件可用于描述代理在导航时应避开的障碍物。例如,代理应该在移动时避开物理控制的物体,例如板条箱和木桶。 我们将添加一个板条箱来阻挡该关卡顶部的通道。 1. 首先创建一个立方体来表现板条箱:__Game Object > 3D Object > Cube__。 2. 将立方体移动到平台顶部,立方体的默认大小很适合板条箱,因此请保持原样。 3. 将一个导航网格障碍物组件添加到立方体。从 Inspector 中选择 Add Component,然后选择 Navigation > NavMesh Obstacle。 4. 将障碍物的形状设置为盒体 (Box);更改形状将使中心和大小自动适应渲染网格。 5. 将一个刚体添加到障碍物。从 Inspector 中选择 Add Component,然后选择 Physics > Rigid Body。
2 min read
Unity3D :创建导航网格代理
Unity3D

Unity3D :创建导航网格代理

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 创建导航网格代理 为关卡烘焙导航网格后,即可创建能够在场景中导航的角色了。我们将使用圆柱体构建原型代理,并将代理设置为运动状态。为实现此目的,需要使用导航网格代理 (NavMesh Agent) 组件和简单脚本。 首先,让我们创建角色: 1. 创建一个圆柱体:__GameObject > 3D Object > Cylinder__。 2. 默认的圆柱体尺寸(高度 2 和半径 0.5)适用于人形代理,因此我们将这些尺寸保持原样。 3. 添加一个导航网格代理组件:__Component > Navigation > NavMesh Agent__。 现在已设置简单的导航网格代理来准备接收命令! 开始尝试使用导航网格代理时,很可能需要根据角色大小和速度调整代理的尺寸。 __导航网格代理__组件将负责角色的寻路和移动控制。在脚本中,导航的设置十分简单,只需设置所需的目标点:导航网格代理可从此处进行所有内容的处理。 // MoveTo.cs using UnityE
3 min read
Unity3D :高级导航网格烘焙设置
Unity3D

Unity3D :高级导航网格烘焙设置

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 高级导航网格烘焙设置 Min Region Area 借助 Min Region Area 高级构建设置,可剔除未连接的小型导航网格区域。表面积小于指定值的导航网格区域将被移除。 请注意,尽管有 Min Region Area 设置,可能也无法删除某些区域。导航网格是以区块网格形式并行构建而成的。如果某个区域跨越区块边界,则不会移除该区域。此情况的原因是区域修剪发生在构建过程中无法访问周围区块的阶段。 体素大小 (Voxel Size) 通过 Manual Voxel Size 设置可更改烘焙过程的准确度。 导航网格烘焙过程使用体素化从任意级别几何体构建导航网格。在算法的第一轮中,场景被光栅化为体素,然后提取可行走表面,最后将可行走表面变成导航网格。体素大小描述了生成的导航网格表示场景几何体的准确程度。 默认的精度设置为每个代理半径为 3 个体素,即整个代理宽度为 6 个体素。此设置可在精确度和烘焙速度之间实现良好折衷。体素大小减半将使内存使用量增加 4 倍,
4 min read
Unity3D :构建导航网格
Unity3D

Unity3D :构建导航网格

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 构建导航网格 从关卡几何体创建导航网格的过程称为导航网格烘焙 (NavMesh Baking)。该过程收集所有标记为 Navigation Static 的游戏对象的渲染网格和地形,然后处理它们以创建近似于关卡的可行走表面的导航网格。 在 Unity 中,导航网格生成方式是在 Navigation 窗口(菜单:__Window__ > AI > __Navigation__)中进行处理的。 为场景构建导航网格可以通过 4 个快速步骤完成: 1. 选择应影响导航的场景几何体:可行走表面和障碍物。 2. 选中 Navigation Static 复选框以便在导航网格烘焙过程中包括所选对象。 3. 调整烘焙设置以匹配代理大小。 * Agent Radius 定义代理中心与墙壁或窗台的接近程度。 * Agent Height 定义代理可以达到的空间有多低。 * Max Slope 定义代理走上坡道的陡峭程度。 * Step Height 定义代理可以踏上的障碍物的高度。 1.
4 min read
Unity3D :导航系统的内部工作原理
Unity3D

Unity3D :导航系统的内部工作原理

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 导航系统的内部工作原理 当您希望智能地移动游戏中的角色(或者 AI 行业中所称的代理)时,必须解决两个问题:如何_推断_关卡来寻找目标,然后如何_移动_到该位置。这两个问题是紧密相关的,但性质却截然不同。关卡推断问题更具全局性和静态性,因为需要考虑整个场景。移动到目标更具局部性和动态性,只考虑移动的方向以及如何防止与其他移动的代理发生碰撞。 可行走区域 导航系统需要自己的数据来表示游戏场景中的可行走区域。可行走区域定义了代理可在场景中站立和移动的位置。在 Unity 中,代理被描述为圆柱体。可行走区域是通过测试代理可站立的位置从场景中的几何体自动构建的。然后,这些位置连接到场景几何体之上覆盖的表面。该表面称为导航网格(简称 NavMesh)。 导航网格将该表面存储为凸多边形。凸多边形是一种有用的表示,因为我们知道多边形内的任意两点之间没有障碍物。除了多边形边界之外,我们还存储有关哪些多边形彼此相邻的信息。这使我们能够推断整个可行走区域。 寻路 要寻找场景中两个位置之间的路径,我们首先需
7 min read
Unity3D

Unity3D :自定义编辑器

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 自定义编辑器 为了加快应用程序开发,请为常用组件创建自定义编辑器。本页面展示了如何创建一个简单的脚本以使游戏对象始终看向一个点。 1. 创建一段 C# 脚本并将其命名为“LookAtPoint”。 2. 打开该脚本并将其内容替换为下面的代码。 3. 将脚本附加到场景中的游戏对象。 //C# 示例 (LookAtPoint.cs) using UnityEngine; public class LookAtPoint : MonoBehaviour { public Vector3 lookAtPoint = Vector3.zero; void Update() { transform.LookAt(lookAtPoint); } } 进入运行模式后,脚本所附加到的游戏对象现在会将自身朝向设置为“Look At Point”属性的坐标。编写编辑器脚本时,让某些脚本在编辑模式期间执行通常很有用(此时未运行您的应用程序)。为此,请向类添加
6 min read
Unity3D

Unity3D :属性绘制器

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 属性绘制器 借助属性绘制器,可以通过使用脚本上的特性或通过控制特定 Serializable 类的外观来自定义 __Inspector 窗口__中某些控件的外观。 属性绘制器有两种用途: * 自定义 Serializable 类的每个实例的 GUI。 * 通过自定义的__属性特性__来自定义脚本成员的 GUI。 自定义 Serializable 类的 GUI 如果有自定义的 Serializable 类,可以使用__属性绘制器__来控制该类在 Inspector 中的外观。请参考以下脚本示例中的 Serializable 类 Ingredient(注意:这些不是编辑器脚本。属性特性类应放在常规脚本文件中): C#(示例): using System; using UnityEngine; enum IngredientUnit { Spoon, Cup,
4 min read
NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号