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
|
#if GLTF
|
||||||
bool loadingModel = false;
|
bool loadingModel = false;
|
||||||
|
|
||||||
private async void ProcessGltfModel(RoboidControl.Thing coreThing) {
|
private async void ProcessGltfModel(RoboidControl.Thing coreThing) {
|
||||||
if (!loadingModel) {
|
if (!loadingModel) {
|
||||||
loadingModel = true;
|
loadingModel = true;
|
||||||
@ -192,7 +193,7 @@ namespace RoboidControl.Unity {
|
|||||||
Thing[] things = FindObjectsOfType<Thing>();
|
Thing[] things = FindObjectsOfType<Thing>();
|
||||||
Thing parentThing = null;
|
Thing parentThing = null;
|
||||||
foreach (Thing thing in things) {
|
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;
|
parentTransform = thing.transform;
|
||||||
parentThing = thing;
|
parentThing = thing;
|
||||||
}
|
}
|
||||||
@ -212,7 +213,8 @@ namespace RoboidControl.Unity {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
ScanForThings(parentTransform);
|
ScanForThings(parentTransform);
|
||||||
}
|
|
||||||
|
AddMeshColliders(parentTransform); }
|
||||||
else {
|
else {
|
||||||
this.transform.localScale = Vector3.one * 1;
|
this.transform.localScale = Vector3.one * 1;
|
||||||
}
|
}
|
||||||
@ -262,6 +264,15 @@ namespace RoboidControl.Unity {
|
|||||||
return null;
|
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>
|
/// <summary>
|
||||||
/// Handle a Pose event
|
/// Handle a Pose event
|
||||||
|
Loading…
x
Reference in New Issue
Block a user