using GLTFast; using UnityEngine; /// <summary> /// 场景模型导入 /// <summary> public class SceneImport : MonoBehaviour { public string[] colliers; public virtual async void Start() { var url = $"{Application.streamingAssetsPath}/Buildings/Scene/Scene.gltf"; var gltf = new GltfImport(); var impoerSetting = new ImportSettings { generateMipMaps = true }; var success = await gltf.Load(url, impoerSetting); if (success) { gltf.InstantiateMainScene(transform); Transform[] grandFa = gameObject.GetComponentsInChildren<Transform>(true); foreach (Transform child in grandFa) { if (child.GetComponent<MeshFilter>()) child.gameObject.AddComponent<MeshCollider>(); } for(int i=0;i< colliers.Length; i++) { var data= transform.Find("Scene/" + colliers[i]).gameObject.AddComponent<InstantiateData>(); data.floorId = 0; data.Equipment = true; data.Power = true; } } else { Debug.LogError("Loading glTF failed!"); } } }