Unity3D

A collection of 1256 posts
Unity3D

Unity3D:2D 复合碰撞体

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 2D 复合碰撞体 (Composite Collider 2D) 复合碰撞体 2D 组件是与 2D 物理系统交互的碰撞体。与大多数对撞机不同,它没有定义固有的形状。相反,它会合并您设置要使用的任何箱形碰撞体 2D 或多边形碰撞体 2D 的形状。复合碰撞体 2D 使用来自任何这些碰撞体的顶点(几何体),并将它们合并到由复合碰撞体 2D 本身控制的新几何体中。 箱形碰撞体 2D 和面碰撞体 2D 组件都具有“由复合材料使用”复选框。选中此复选框可将它们附加到 2D 复合碰撞体。这些碰撞体还必须连接到与复合碰撞体 2D 相同的刚体 2D。启用“由复合体使用”时,其他属性将从该组件中消失,因为它们现在由附加的 2D 复合碰撞体控制。
4 min read
Unity3D:2D 胶囊碰撞体
Unity3D

Unity3D:2D 胶囊碰撞体

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 2D 胶囊碰撞体 (Capsule Collider 2D) 胶囊对撞机 2D 是与 2D 物理系统交互的对撞机。胶囊形状没有顶角,具有连续的圆形圆周。这种形状使胶囊对撞机 2D 不容易被其他对撞机的角落夹住。胶囊形状被认为是实心的,而不是空心的,这意味着胶囊碰撞体 2D 内部的任何其他碰撞体 2D 都被视为与碰撞体接触,并随着时间的推移被迫退出。 属性功能Material使用此属性来定义 2D 胶囊碰撞体使用的物理材质。此材质将覆盖所有 2D 刚体或全局物理碰撞体。Is Trigger选中此框可指定 2D 胶囊碰撞体将触发事件。如果选中此框,物理引擎会忽略此碰撞体。Used by Effector选中此框可指定附加的效应器将使用此 2D 胶囊碰撞体。Offset使用此属性来设置 2D 胶囊碰撞体几何形状的局部偏移。Size使用此属性来定义盒体大小。此盒体可指定 2D
4 min read
Unity3D

Unity3D:2D 边界碰撞体

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 2D 边界碰撞体 (Edge Collider 2D) 边缘碰撞体 2D 组件是与 2D 物理系统交互的碰撞体。碰撞体的形状是由线段组成的自由形状边缘,您可以调整这些边以适合精灵或任何其他形状的形状。碰撞体的起点和终点不需要相遇或完全包围某个区域即可发挥作用(与 2D 多边形碰撞体不同),并且可以形成直线或其他单边形状。 属性功能Edit Collider选择“编辑折线”按钮(折线图标)以使碰撞体轮廓可编辑。请参阅下面的碰撞体快捷方式,了解启用“编辑碰撞体”时可用的快捷方式。Material为此碰撞体选择物理材质 2D 以确定它如何与其他碰撞体交互。Is Trigger启用此属性可使该碰撞体充当触发器。Used by Effector启用此属性可使附加的 Effector 2D 组件使用此碰撞体。Offset X/Y设置 x/ y 相当于使碰撞体几何形状偏移。Edge Radius设置一个值,
3 min read
Unity3D

Unity3D:2D 多边形碰撞体

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 2D 多边形碰撞体 (Polygon Collider 2D) 多边形碰撞体 2D 组件是与 2D 物理系统交互的碰撞体。碰撞体的形状由线段组成的自由形状边缘定义,您可以调整该边缘以适合 Sprite 或任何其他形状的形状。请注意,此碰撞体的边缘必须完全包围一个区域才能正常工作。 属性功能Material一种物理材质,可用于确定碰撞的属性(例如摩擦和弹性)。Is Trigger如果希望此碰撞体作为触发器运行,请勾选此框。Used by Effector附加的效应器是否使用该碰撞体。Used by Composite如果您希望此碰撞体由连接的 2D 复合碰撞体使用,请勾选此复选框。 启用“由复合体使用”后,其他属性将从 2D 多边形碰撞体组件中消失,因为它们现在由附加的 2D 复合碰撞体控制。从 Box Collider 2D 中消失的属性包括材质、触发、
3 min read
Unity3D

Unity3D:Box Collider 2D

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Box Collider 2D 箱形对撞机 2D 是与 2D 物理系统交互的对撞机。它是一个矩形,在精灵的局部坐标空间中具有定义的位置、宽度和高度。请注意,矩形是轴对齐的,其边缘平行于局部空间的 X 轴或 Y 轴。 属性功能Material一种物理材质,可用于确定碰撞的属性(例如摩擦和弹性)。Is Trigger如果希望 2D 盒型碰撞体作为触发器运行,请选中此框。Used by Effector如果希望 2D 盒型碰撞体由附加的 2D 效应器组件使用,请选中此框。Used by Composite如果您希望此碰撞体由连接的 2D 复合碰撞体使用,请勾选此复选框。 启用“由复合体使用”后,其他属性将从 Box Collider
2 min read
Unity3D

Unity3D:Circle Collider 2D

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Circle Collider 2D 圆形对撞机 2D 是与 2D 物理系统交互的对撞机。碰撞体的形状是在精灵的局部坐标空间内具有定义位置和半径的圆。 属性:功能:Material一种物理材质,可用于确定碰撞的属性(例如摩擦和弹性)。Is Trigger如果希望 2D 圆形碰撞体作为触发器运行,请选中此框。Used by Effector如果希望 2D 圆形碰撞体由附加的 2D 效应器使用,请选中此框。Offset2D 圆形碰撞体几何形状的局部偏移。Radius圆形的半径(采用局部空间单位)。 此文由3D建模学习工作室整理翻译,转载请注明出处! 上一篇:Unity3D:2D 刚体 (mvrlink.com) 下一篇:Unity3D:Box Collider 2D (mvrlink.com)
1 min read
Unity3D:2D 刚体
Unity3D

Unity3D:2D 刚体

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 2D 刚体 2D 刚体组件将对象置于物理引擎的控制之下。标准刚体组件中的许多熟悉概念都延续到了 2D 刚体;不同之处在于,在 2D 中,对象只能在 XY 平面中移动,并且只能在垂直于该平面的轴上旋转。 2D 刚体工作原理 通常,Unity Editor 的变换组件定义游戏对象(及其子游戏对象)在场景中的定位、旋转和缩放方式。更改变换组件将更新其他组件,这样可以更新渲染对象的位置或碰撞体所在位置之类的属性。2D 物理引擎能够移动碰撞体并使这些碰撞体彼此交互,因此物理引擎需要一种方法将碰撞体的此移动状态传回变换组件。此移动以及与碰撞体的连接便是 2D 刚体组件的用途。 2D 刚体组件会覆盖变换组件,并将其更新为 2D 刚体定义的位置/旋转。请注意,虽然仍然可以通过自行修改变换组件来覆盖 2D 刚体(因为 Unity 会公开所有组件上的所有属性),但是这样会导致各种问题,
21 min read
Unity3D

Unity3D:可编程画笔示例

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 可编程画笔示例 LineBrush 允许通过指定起点和终点在瓦片地图上轻松绘制多行瓦片。通过重写 LineBrush 的 Paint 方法,允许用户在绘画模式下第一次单击鼠标来指定行的起点,然后在绘画模式下第二次单击鼠标来绘制该行。通过重写 OnPaintSceneGUI 方法,可生成在第一次和第二次单击鼠标之间绘制的行的预览效果。以下是一个用于创建画笔的脚本。 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Tilemaps; namespace UnityEditor.Tilemaps { [CustomGridBrush(true, false, false, "Line Brush")] public class LineBrush : GridBrush { public bool
3 min read
Unity3D

Unity3D:TilemapEditorTool

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 TilemapEditorTool 这是一个可继承的类,用于定义“图块调色板”窗口的编辑器工具。要为“平铺选项板”窗口创建新的编辑器工具,请创建一个继承自 的新类。重写新类所需的任何方法。TilemapEditorToolTilemapEditorToolTilemapEditorTool 您可以从以下方法覆盖:TilemapEditorTool protected abstract string tooltipStringFormat { get; } 定义此项以显示 .您的快捷方式将传递到此快捷方式,并针对最终工具提示进行格式化。TilemapEditorToolTilemapEditorTool protected abstract string shortcutId { get; } 定义此项以分配用于标识工具键盘快捷键的快捷键 ID。 public virtual GUIContent toolbarIcon { get; } 定义此项以显示 .如果未定义,工具栏将显示
2 min read
Unity3D

Unity3D:GridBrushEditorBase

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 GridBrushEditorBase 添加的所有画笔编辑器必须继承自 GridBrushEditorBase。GridBrushEditorBase 提供了一组固定 API 用于在 Palette 窗口上绘制检视面板以及在 Scene 视图上绘制辅助图标。 public virtual GameObject[] validTargets 这将返回作为画笔有效绘制目标的游戏对象列表。此列表将显示在 Palette 窗口内的下拉选单中。重写此 API 可提供此画笔可进行交互的自定义目标列表。 public virtual void OnPaintInspectorGUI() 这将显示一个检视面板以用于在面板 (Palette) 中编辑画笔 (Brush) 选项。使用此 API 可在 Scene 视图中进行编辑时更新画笔功能。 public virtual void OnSelectionInspectorGUI() 这将在目标网格上选择单元格时显示检视面板。重写此 API 可显
1 min read
Unity3D

Unity3D:GridBrushBase

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 GridBrushBase 添加的所有画笔必须继承自 GridBrushBase。GridBrushBase 提供了一组固定 API 用于绘制。 public virtual void Paint(GridLayout grid, GameObject brushTarget, Vector3Int position) Paint 使用 GridLayout 网格在给定位置将数据添加到目标游戏对象 brushTarget 上。在网格上激活画笔并在 Palette 窗口中选择__绘画工具 (Paint Tool)__ 时会触发此 API。重写此 API 可以实现所需的绘制操作。 public virtual void Erase(GridLayout grid, GameObject brushTarget, Vector3Int position) Erase 使用
4 min read
Unity3D

Unity3D:可编程画笔

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 可编程画笔 创建可编程画笔 创建一个继承自(或任何有用的子类)的新类。重写新 Brush 类所需的任何方法。以下是要覆盖的常用方法:GridBrushBaseGridBrushBaseGridBrush * Paint允许画笔将项目添加到目标网格中。 * Erase允许画笔从目标网格中删除项目。 * FloodFill允许画笔将项目填充到目标网格上。 * Rotate 旋转画笔中设置的项。 * Flip 翻转画笔中设置的项。 使用 创建该新类的实例。 可通过调用 将此新实例转换为 Editor 中的资源以便重复使用。ScriptableObject.CreateInstance<(Your Brush Class>()AssetDatabase.CreateAsset() 还可以为画笔创建自定义编辑器。 这与脚本化对象的自定义编辑器的工作方式相同。 以下是在创建自定义编辑器时要重写的主要方法: * 您可以覆盖以在选择画笔时在调色板上显示检查器窗口,以在绘画时提供其他行为。On
3 min read
Unity3D

Unity3D:可编程瓦片示例

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 可编程瓦片示例 RoadTile 示例说明了如何使用最少的精灵集轻松地将线性段布局到瓦片地图(例如道路或管道)上。以下是一个用于创建瓦片的脚本。 using UnityEngine; using System.Collections; # if UNITY_EDITOR using UnityEditor; # endif public class RoadTile : Tile { public Sprite[] m_Sprites; public Sprite m_Preview; // 刷新自身以及其他以正交和对角形式相邻的 RoadTile public override void RefreshTile(Vector3Int location, ITilemap tilemap) { for (int yd = -1; yd <= 1; yd+
2 min read
Unity3D

Unity3D:其他有用的类

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 其他有用的类 TileFlags None = 0 不为瓦片设置任何标志。这是大多数瓦片的默认设置。 LockColor = 1 << 0 如果瓦片脚本控制瓦片的颜色,请设置此标志。如果进行此设置,则瓦片将控制瓦片放置在瓦片地图上时的颜色。无法通过绘制或使用脚本来更改瓦片的颜色。如果未进行此设置,则可以通过绘制或使用脚本来更改瓦片的颜色。 LockTransform = 1 << 1 如果瓦片脚本控制瓦片的变换,请设置此标志。如果进行此设置,则瓦片将控制瓦片放置在瓦片地图上时的变换。无法通过绘制或使用脚本来旋转或更改瓦片的变换。如果未进行此设置,则可以通过绘制或使用脚本来更改瓦片的变换。 LockAll = LockColor | LockTransform 这是 TileBase 使用的所有锁定标志的组合。 InstantiateSpawnGameObjectRuntimeOnly = 1 << 2 如果瓦片脚本仅应当在项目运行时且不在 Editor 模式下才生成其游戏对象,
3 min read
Unity3D

Unity3D:TileAnimationData

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 TileAnimationData public Sprite[] animatedSprites 瓦片动画的精灵数组。瓦片由这些精灵按顺序进行动画化。 public float animationSpeed 运行瓦片动画的速度。此速度与瓦片地图的动画速度相结合得到实际速度。 public float animationTimeOffset 允许在不同的时间范围内启动动画。 此文由3D建模学习工作室整理翻译,转载请注明出处! 上一篇:Unity3D:TileData (mvrlink.com) 下一篇:Unity3D:其他有用的类 (mvrlink.com)
1 min read
Unity3D

Unity3D:TileData

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 TileData public Sprite sprite 为瓦片渲染的精灵。 public Color color 为瓦片使用的精灵的着色颜色。 public Matrix4x4 transform 用于确定瓦片最终位置的变换矩阵。对此进行修改可向瓦片添加旋转或缩放。 public GameObject gameobject 将瓦片添加到瓦片地图时实例化的游戏对象。 public TileFlags flags 用于控制瓦片行为的标志。有关更多详细信息,请参阅前面的 TileFlags。 public Tile.ColliderType colliderType 控制由瓦片为附加的 Tilemap Collider 2D 组件生成的碰撞体形状。有关更多详细信息,请参阅有关 Tile.ColliderType 的文档。 此文由3D建模学习工作室整理翻译,转载请注明出处! 上一篇:Unity3D:Tile (mvrlink.com)
1 min read
Unity3D

Unity3D:Tile

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Tile Tile 类是一个允许在瓦片地图上渲染精灵的简单类。Tile 继承自 TileBase。下面描述了为具有 Tile 的行为而要重写的方法。 public Sprite sprite; public Color color = Color.white; public Matrix4x4 transform = Matrix4x4.identity; public GameObject gameobject = null; public TileFlags flags = TileFlags.LockColor; public ColliderType colliderType = ColliderType.Sprite; 这些是 Tile 的默认属性。如果通过将精灵拖放到 Tilemap Palette 上来创建瓦片,则瓦片会将 Sprite 属性设置为已放入的精灵。
1 min read
Unity3D

Unity3D:TileBase

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 TileBase 所有要添加到瓦片地图的瓦片必须继承自 TileBase。TileBase 为瓦片地图提供了一组固定 API 来传达其渲染属性。对于 API 的大多数情况,瓦片的位置和瓦片所在瓦片地图的实例作为 API 的参数传入。由此可确定用于设置瓦片信息的所有必需属性。 public void RefreshTile(Vector3Int location, ITilemap tilemap) RefreshTile 确定将此瓦片添加到瓦片地图时所更新的附近瓦片。默认情况下,TileBase 调用 tilemap.RefreshTile(location) 来刷新当前位置的瓦片。对此进行重写可以确定由于放置新瓦片而需要刷新的瓦片。 示例:在一条直路的旁边放着一个 RoadTile。直路不再有效。实际需要一个 T 形截面。Unity 不会自动知道需要刷新什么,因此 RoadTile 需要触发自身刷新,但也需要触发邻近道路上的刷新。 public bool
2 min read
Unity3D:Tilemap Renderer 模式
Unity3D

Unity3D:Tilemap Renderer 模式

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Tilemap Renderer 模式 Tilemap Renderer 组件用于渲染场景中的瓦片地图 (Tilemap)。Unity 会创建默认附加了 Tilemap Renderer 组件的瓦片地图。Tilemap Renderer 可以: * 在 Chunk Mode 模式下进行批量渲染 * 在 Individual Mode 模式下进行单独渲染 渲染模式 (Render Mode) 会影响瓦片地图精灵渲染时的排序方式。 在 Chunk Mode 模式下进行批量渲染 Chunk Mode 是 Tilemap Renderer 的默认渲染模式: 设置为 Chunk Mode 时,Tilemap Renderer 会批量处理瓦片地图上的精灵,并将它们一起渲染。在
4 min read
Unity3D:创建用于等距瓦片地图的瓦片面板
Unity3D

Unity3D:创建用于等距瓦片地图的瓦片面板

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 创建用于等距瓦片地图的瓦片面板 要创建用于绘制等距瓦片地图的瓦片面板 (Tile Palette),请执行以下操作: 1. 打开 Tile Palette 窗口(菜单:Window > 2D > Tile Palette): 2. 选择 Create New Palette 以打开其下拉菜单。 3. 将 Grid type 设置为与当前绘制的 Isometric 或 Isometric Z As Y 瓦片地图相同的布局。 4. 将 Cell Size 设置为 Manual。将 X 和 Z 保留为默认值,但将 Y
3 min read
Unity3D:创建等距瓦片地图
Unity3D

Unity3D:创建等距瓦片地图

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 创建等距瓦片地图 创建__等距瓦片地图 (Isometric Tilemap)__ 时,与创建常规瓦片地图相比,还需要执行其他步骤。要创建等距瓦片地图,请选择 GameObject > 2D Object > Isometric Tilemap/Isometric Z as Y Tilemap。 创建等距瓦片地图后,还需要通过项目和网格设置进行其他设置,才能正确渲染等距瓦片地图。 自定义轴排序 为了渲染等距瓦片地图的瓦片,需要先渲染远离瓦片地图“背面”的瓦片,然后再渲染正面的瓦片,从而创建等距透视图的__伪深度。为了确保场景中的所有渲染器都符合此逻辑,请使用自定义轴 (Custom Axis) 作为排序轴 (Sorting Axis)。将 Transparency Sort Mode__ 设置为“Custom Axis”,并为
4 min read
Unity3D:为等距瓦片地图导入和准备精灵
Unity3D

Unity3D:为等距瓦片地图导入和准备精灵

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 为等距瓦片地图导入和准备精灵 通过将纹理放入“资源”文件夹,将等轴测图块的单个图块或图块表图像导入 Unity 项目。选择导入的图像以在“检查器”窗口中查看其“纹理导入器”设置。 导入精灵供等距瓦片地图中使用时,请使用以下建议设置。有关每项设置的更多信息,请参阅 Texture Type: Sprite (2D and UI) 文档。 1. Texture Type - 将此项设置为 Sprite (2D and UI)。 瓦片地图不支持其他纹理类型。 2. 精灵模式 - 如果纹理仅包含一个精灵,则将其设置为“单一”。如果它包含多个精灵纹理,例如具有多个平铺纹理的精灵工作表,则设置为多个。 3. 每单位像素数 (PPU) -
4 min read
Unity3D:六边形瓦片地图
Unity3D

Unity3D:六边形瓦片地图

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 六边形瓦片地图 除常规瓦片地图外,Unity 还提供 Hexagonal Point Top Tilemap 和 Hexagonal Flat Top Tilemap 瓦片地图。六角形瓦片通常用于战略类桌面游戏,因为它们的中心与边上的任何点之间具有一致的距离,并且相邻的瓦片总是共享边。因此,这些瓦片非常适合构建几乎任何类型的大型游戏区域,并让玩家做出关于移动和定位的战术决策。 六边形图块地图使用偏移坐标系,其中替代行或列在将单元格与六边形网格对齐时偏移半个单元格。对于六边形点顶部拼贴地图,每个奇数行都会向右偏移半个单元格的宽度。对于六边形平顶拼贴地图,每个奇数列都会偏移顶部半个单元格的高度。 Example: Hexagonal Point Top Tilemap. Offset rows are colored in yellow. Example: Hexagonal Flat Top Tilemap. Offset columns are colored
3 min read
Unity3D

Unity3D:瓦片地图 2D 碰撞体

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 瓦片地图 2D 碰撞体 (Tilemap Collider 2D) 图块映射碰撞体 2D 组件为同一游戏对象上的图块组件上的图块生成碰撞体形状。在“图块地图”组件上添加或删除“图块”时,“图块映射碰撞体 2D ”会在 期间更新“磁贴体”形状。它将多个磁贴更改批处理在一起,以确保对性能的影响最小。LateUpdate Tilemap Collider 2D 属性 属性功能Max Tile Change Count在执行完全碰撞体重建(而不是增量重建)之前要累积的最大图块更改数(例如在瓦片地图中添加/删除图块)。 大量累积的更改可能会导致 Tilemap 碰撞体 2D 的增量重建速度比完全重建慢。减小此值可解决此问题。Extrusion Factor设置数量(以 Unity 世界空间单位为单位)
4 min read
Unity3D:选择工具
Unity3D

Unity3D:选择工具

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 选择工具 选择工具 Inspector 窗口包含以下两个主要部分,即 Grid Selection 和 Modify Tilemap 属性设置。 Grid Selection 使用选择工具可选择一个或多个单元格。Grid Selection Inspector 窗口显示选定位置处的瓦片的内容和属性。 Grid Selection Inspector 窗口属性 Grid Selection 属性 属性功能瓦片显示当前在选定单元格位置处设置的瓦片。如果选择多个单元格,并且它们显示相同瓦片,则会显示该瓦片的名称。如果选择具有不同瓦片的多个单元格,则此属性为空白。Sprite在上面的 Tile 属性中会显示分配给瓦片的精灵。如果选择具有相同瓦片的多个单元格,则这会显示相同精灵。如果选择具有不同瓦片的多个单元格,则此属性为空白。这在默认情况下显示为灰色,因此无法进行编辑。Color精灵的顶点颜色。如果启用了 Lock Color,则这显示为灰色,因此无法进行编辑。
9 min read
NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号