我有一个附加到一个盒子的脚本,该盒子有两个用于物理的碰撞器,一个(稍大)用于当我的玩家走过它时检测 OntriggerEnters。我在盒子上附加了一个脚本,它执行以下操作:
public class ColorChangeCollision : MonoBehaviour {
private GameObject Element;
private Color32 BaseColor, CollisionColor;
private Material ElementMaterial;
void Start () {
Element = this.gameObject;
BaseColor = new Color32(255,255,255,255);
CollisionColor = new Color32((byte)Random.Range(0, 255),(byte)Random.Range(0, 255),(byte)Random.Range(0, 255), 255);
ElementMaterial = Element.gameObject.GetComponent<Renderer>().material;
}
private void OnControllerColliderHit(ControllerColliderHit other)
{
Debug.Log("collision...");
ElementMaterial.color = CollisionColor;
}
private void OnTriggerEnter(Collider other)
{
Debug.Log("enter");
}
private void OnTriggerStay(Collider other)
{
Debug.Log("staying..");
}
private void OnTriggerExit(Collider other)
{
Debug.Log("left...");
ElementMaterial.color = BaseColor;
}
}
Run Code Online (Sandbox Code Playgroud)
主要问题 OnTriggerEnter是OnControllerColliderHit …
我有一个根据用户输入更新其形状的网格,如何让碰撞器匹配网格的新形状?
重要提示:网格始终是凸的(没有例外)。我发现为了让对撞机正常工作很重要。
我发现下面的视频在这里meshCollider.sharedMesh = null执行此操作,但是通过执行然后为每个帧简单地擦除并重新计算对撞机meshCollider.sharedMesh = updatedMesh。
由于我已经在计算网格的每个顶点、边和三角形的位置,我是否可以将这些值用于网格碰撞器?