Add convex mesh colliders for GLTF meshes
This commit is contained in:
parent
48d538a73a
commit
d63d3cedd2
@ -177,6 +177,7 @@ namespace RoboidControl.Unity {
|
||||
|
||||
#if GLTF
|
||||
bool loadingModel = false;
|
||||
|
||||
private async void ProcessGltfModel(RoboidControl.Thing coreThing) {
|
||||
if (!loadingModel) {
|
||||
loadingModel = true;
|
||||
@ -192,7 +193,7 @@ namespace RoboidControl.Unity {
|
||||
Thing[] things = FindObjectsOfType<Thing>();
|
||||
Thing parentThing = null;
|
||||
foreach (Thing thing in things) {
|
||||
if (thing.core.owner.networkId == coreThing.owner.networkId && thing.core.id == coreThing.id) {
|
||||
if (thing.core != null && thing.core.owner.networkId == coreThing.owner.networkId && thing.core.id == coreThing.id) {
|
||||
parentTransform = thing.transform;
|
||||
parentThing = thing;
|
||||
}
|
||||
@ -212,7 +213,8 @@ namespace RoboidControl.Unity {
|
||||
}
|
||||
else
|
||||
ScanForThings(parentTransform);
|
||||
}
|
||||
|
||||
AddMeshColliders(parentTransform); }
|
||||
else {
|
||||
this.transform.localScale = Vector3.one * 1;
|
||||
}
|
||||
@ -262,6 +264,15 @@ namespace RoboidControl.Unity {
|
||||
return null;
|
||||
}
|
||||
|
||||
private void AddMeshColliders(Transform rootTransform) {
|
||||
MeshRenderer[] meshRenderers = rootTransform.GetComponentsInChildren<MeshRenderer>();
|
||||
foreach (MeshRenderer meshRenderer in meshRenderers) {
|
||||
MeshFilter meshFilter = meshRenderer.GetComponent<MeshFilter>();
|
||||
MeshCollider meshCollider = meshRenderer.gameObject.AddComponent<MeshCollider>();
|
||||
meshCollider.sharedMesh = meshFilter.sharedMesh;
|
||||
meshCollider.convex = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle a Pose event
|
||||
|
Loading…
x
Reference in New Issue
Block a user