Articles of meshcollider

Unity3d碰撞者不在我的角色上工作

我已经在maya中创建了2个字符,并在Unity3d中导入了它们。 我能够统一移动和animation,但角色不会相互碰撞。 我已经尝试了所有主要的对撞机胶囊,盒子和网眼。 我有点卡住了!

你可以从sprite获得多边形对撞2d形状吗?

当您使用多边形对撞机2d创建一个对象时,unity会自动生成一个近似适合精灵的多边形对撞机。 我的问题是,如果有一种方法来从脚本创建一个对象时做到这一点? 在search解决scheme时,我发现每个精灵都有一个包含顶点的精灵网格。 我试图设置这些作为我的对撞机的path,但结果是一团糟:他们的顺序似乎搞砸了。 我目前的代码: Sprite spr; // I get that in other part of the code GameObject go = GameObject)Instantiate(prefab,gameObject.transform); go.GetComponent<SpriteRenderer>().sprite = spr; go.GetComponent<PolygonCollider2D>().SetPath(0, spr.vertices);

Unity5使用非凸的meshcollider与刚体

我想用轮对撞机,网状对撞机和刚体来建造一辆汽车。 问题是,团结希望meshcollider凸出,这是不可能发生的,因为我的基础模型大于255聚。

检测汽车何时离开轨道

我对Unity 3D完全陌生,刚开始遵循一些教程。 我正在试图建立一个2D赛车游戏作为我学习的一部分(殴打,没有对手)。 我有一个赛车赛道纹理(重复)。 我的问题是知道赛车何时在赛道之外/赛道内(我不希望将赛道限制在赛道边界内)。 我在四处搜寻后试过的东西:我读了一些关于网格碰撞器的地方: 我添加了一个网格碰撞器的轨道(与'凸'和'是触发'检查,老实说,我不知道什么凸,但我不能检查'是触发'w / out检查'凸') 。 添加OnTriggerExit和OnTriggerEnter方法到跟踪脚本(滚动轨道的脚本),希望两个将被称为每个计时器汽车走出轨道或回来。 显然这两种方法根本不叫,有人请帮忙。 谢谢。

Raycast绘图和打击限制在缸内

我试图让一个非常基本的“雷达”系统工作。 现在,我甚至不扫描,只是看着一个已知的目标位置。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class RadarScript : MonoBehaviour { public GameObject radar; public GameObject target; private bool found = false; void Update () { Vector3 lookLocation = target.transform.position – radar.transform.position; RaycastHit hitInfo; if (found == false) { Ray ray = new Ray (radar.transform.position, lookLocation); Debug.DrawRay (ray.origin, ray.direction, Color.red); if (Physics.Raycast […]

select对象来预制Unity

所以…我有一个树木对象,我已经复制它在场景中有许多树木。 所以我现场有大约200棵树 在复制之前,我忘了添加一棵树作为预制件。 现在,无论如何要添加一棵树作为预制,并使其他树木的行为类似。 任何帮助,将不胜感激。 提前致谢!!

如何在Unity中创建单词作为对象?

我正在制作一个以文字为障碍的游戏,即玩家需要爬过去。 游戏中会有数百个词汇,因此我需要一种自动放置的方法。 我想出了如何在Unity中使用TextMesh创建一个对象,但我无法弄清楚如何自动生成一个对撞机,以便我可以让玩家与之交互。 我知道有一种方法来编辑Edge和Polygon碰撞体的顶点,但我没有编辑它们的源代码。 有用的是TextRender的getPoints方法,但似乎没有办法得到这个。 我正在以正确的方式进行吗? 提前致谢。

Unity网格碰撞检测器碰撞物体内部空

我正在尝试使用Unity完成我的第一个3D游戏。 在这个游戏中角色将通过一些戒指飞行。 我用MagicaVoxel制作了环形资产,将它导出到.obj中,然后在Unity中重新导入,没有任何问题。 我在角色模型上设置了一个刚体和一个箱子对撞机,并且没有刚体的一个网状碰撞器也设置了环,我还设置了凸面并添加了环的默认网格。 问题是,每当我尝试进入戒指时,我都不能,因为我甚至会碰到它里面的空白部分。 我不确定如何让Unity与外部部件相互碰撞,但就我在编辑器中看到的,我没有设置。 我正在使用Unity 5.3.4f1。 有人能解释我如何解决这个问题吗? 非常感谢你。 编辑 对不起,我忘记提及,我知道我可以解除环网凸面属性,并得到它的工作。 但是,这个解决scheme的问题是,每当我把相邻的戒指,即使没有空间适合,我可以干扰他们。 所以基本上我只需要在环的外面部分与凸面进行稳固的碰撞,并且在空间内部通过空的空间。 这是可能的吗?

团结 – 如何使非凸网格物理碰撞?

每当我将一个Rigidbody组件添加到一个非凸面网格的对象时,Unity会抛出这个错误: Non-convexmatic Rigidbody的非凸MeshCollider在Unity 5中不再支持。如果要使用非凸网格,则可以使Rigidbody为可移动的,或者移除Rigidbody组件。 场景层次结构path“Ship / BlockHolder / MeshHolder [0]”,Mesh资源path“”Mesh名称“MeshHolderTemplate(Clone)” https://docs.unity3d.com/Manual/class-MeshCollider.html 在做了一些研究之后,看起来我需要启用Mesh Collider的“Convex”设置(这不是我想要的 – 我的对象需要凹面) 或者为Rigidbody组件启用“Is Kinematic”选项(这不是我想要的 – 从我所看到的,Kinematic对象不能被其他对象推送) 最终目标是: https : //www.youtube.com/watch?v = O_UXKce9-OY&t = 41s (以后我可以join破坏,现在我只想让对象能够移动而不是相互交叉) 我该怎么做呢? 我完全迷失在这里。 这在Unity中是不可能的吗?

在运行时用MeshColliderreplacePolygonCollider2D

我正在使用PolygonCollider2D在运行时加载MeshCollider的点,但是在运行时使用良好的编码实践,在两者之间切换时出现问题。 这是当前代码的简化版本: Awake(){ PolygonCollider2D polyCollider = this.gameObject.GetComponent<PolygonCollider2D>(); //save vectors Vector3[] v3 = new Vector3[polyCollider.points.Length]; for (int i = 0; i < polyCollider.points.Length; i++) { v3[i] = new Vector3(polyCollider .points[i].x, polyCollider .points[i].y, 0); } //destroy collider DestroyImmediate(collider); meshCollider = this.gameObject.AddComponent<MeshCollider>(); meshCollider.sharedMesh.vertices = v3; } 除了错误的命名,我怎样才能代替DestroyImmediate(对撞机)与Destory(对撞机),同时仍然有正确的行为。 我愿意把网格碰撞声明移到不同的函数来延迟它的赋值。