Максим Фисман Asked:2022-04-05 20:51:13 +0000 UTC2022-04-05 20:51:13 +0000 UTC 2022-04-05 20:51:13 +0000 UTC 圆形物体从圆形物体上分离出来 772 假设我有一个圆形物体。行星或苹果... 我想要一个圆形(或椭圆形)的棋子在比赛中被“击落”、“咬断”或以任何其他方式与其分离。它应该看起来像这样: 自然与物理有关。 这可能会发生很多次,理论上,即使是已经拍摄的片段的一部分也可以被拍摄。如何实施? 我找到了这个插图: unity3d 3 个回答 Voted Best Answer Yaroslav 2022-04-05T23:33:38Z2022-04-05T23:33:38Z 创建一个新Texture2d的相同尺寸。转移现有纹理。2*blowRadius在与命中点(您必须计算)的中心一样宽的正方形中,将 alpha 像素更改为0. 分别处理边缘,以免出现明显的锯齿。 从这个纹理创建一个新的精灵。PolygonCollider2D旧的将保留,重新安装组件,将其删除并重新添加。 在生成新纹理或销毁对象时不要忘记销毁旧生成的纹理Destroy(texture),以免污染内存。 Yaroslav 2022-04-05T21:23:15Z2022-04-05T21:23:15Z 让自己成为一个仪式数独比实时将网格切割成碎片(程序破坏)更容易。这是非常罕见的,只有在像 Remedy's Control 这样的 AAA 游戏中才能做到。 必须提前切割物体。3d 编辑器具有这样的功能,例如在Blender中。只要球体完好无损,这是最常见的保存球体。当被击中时,它被一个准备好的块资产替换,并且它的一部分被赋予一定命中半径的静态元素,具有一定的 addForce 的刚体,并且可以添加粒子。 如果您需要可以再次拆分的片段,那么半径中的元素将需要以某种方式与一个公共刚体分组。而如果,分团之后,分团由一个元素组成,为了延续毁灭的感觉,你可以愚蠢地用粒子和阴霾结束这件事。 分组思路: 您创建一个带有一个字段的组件,[SerializeField ] private List<KeyValue<int ,int>> _graph其中将有一个片段的参考图InstanceID(Min), InstanceID(Max)。编写一个自定义编辑器,单击一个按钮,它会获取一个带有美分和 id 坐标的结构列表<Vector3, int>,三角化并填充我们的目录,EditorUtility.SetDirty(target)然后你就完成了。根据这个预先准备好的图表,可以从相邻的片段中进行分组。 即便如此,痔疮还是通过屋顶😆。祝你好运,周末快乐😝。 但是一旦这样做了,就可以在管道中创建可破坏的对象。来自整个模型的资产,带有链接图的一块碎片,以及一组用于撞击、分裂和破坏碎片的粒子效果。 Yaroslav 2022-04-05T22:44:57Z2022-04-05T22:44:57Z 关于推。创建一个结构列表<(int)MeshVertextIndex, (float)IndentationValue>。在一定的命中半径内,找到网格的所有点并IndentationValue根据与震中的距离修改压痕( ),也可以使用噪波美化。 有两种实现选项: 使用BumpMap. 根据uv我们的坐标MeshVertextIndex,可以生成凹凸贴图。但是凹凸有点过时了。 编写着色器。在 vert 函数中,沿相反方向沿其法线修改每个顶点,如本例中的Normal Extrusion with Vertex Modifier。我们将一个数组传递给着色器IndentationValue,并找出着色器中每个顶点的索引,使用Vertex ID: SV_VertexID。
创建一个新
Texture2d的相同尺寸。转移现有纹理。2*blowRadius在与命中点(您必须计算)的中心一样宽的正方形中,将 alpha 像素更改为0. 分别处理边缘,以免出现明显的锯齿。从这个纹理创建一个新的精灵。
PolygonCollider2D旧的将保留,重新安装组件,将其删除并重新添加。在生成新纹理或销毁对象时不要忘记销毁旧生成的纹理
Destroy(texture),以免污染内存。让自己成为一个仪式数独比实时将网格切割成碎片(程序破坏)更容易。这是非常罕见的,只有在像 Remedy's Control 这样的 AAA 游戏中才能做到。
必须提前切割物体。3d 编辑器具有这样的功能,例如在Blender中。只要球体完好无损,这是最常见的保存球体。当被击中时,它被一个准备好的块资产替换,并且它的一部分被赋予一定命中半径的静态元素,具有一定的 addForce 的刚体,并且可以添加粒子。
如果您需要可以再次拆分的片段,那么半径中的元素将需要以某种方式与一个公共刚体分组。而如果,分团之后,分团由一个元素组成,为了延续毁灭的感觉,你可以愚蠢地用粒子和阴霾结束这件事。
分组思路:
您创建一个带有一个字段的组件,
[SerializeField ] private List<KeyValue<int ,int>> _graph其中将有一个片段的参考图InstanceID(Min), InstanceID(Max)。编写一个自定义编辑器,单击一个按钮,它会获取一个带有美分和 id 坐标的结构列表<Vector3, int>,三角化并填充我们的目录,EditorUtility.SetDirty(target)然后你就完成了。根据这个预先准备好的图表,可以从相邻的片段中进行分组。即便如此,痔疮还是通过屋顶😆。祝你好运,周末快乐😝。
但是一旦这样做了,就可以在管道中创建可破坏的对象。来自整个模型的资产,带有链接图的一块碎片,以及一组用于撞击、分裂和破坏碎片的粒子效果。
关于推。创建一个结构列表
<(int)MeshVertextIndex, (float)IndentationValue>。在一定的命中半径内,找到网格的所有点并IndentationValue根据与震中的距离修改压痕( ),也可以使用噪波美化。有两种实现选项:
使用
BumpMap. 根据uv我们的坐标MeshVertextIndex,可以生成凹凸贴图。但是凹凸有点过时了。编写着色器。在 vert 函数中,沿相反方向沿其法线修改每个顶点,如本例中的Normal Extrusion with Vertex Modifier。我们将一个数组传递给着色器
IndentationValue,并找出着色器中每个顶点的索引,使用Vertex ID: SV_VertexID。