You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.2 KiB
44 lines
1.2 KiB
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!"); |
|
} |
|
} |
|
}
|
|
|