private void InstantiateModel(GameObject parent, bool isFirst) { UnsModelDescribe describe = parent.GetComponent <UnsModelDescribe>(); for (int i = 0; i < describe.gos_Skeleton.Length; i++) { GameObject go = describe.gos_Skeleton[i]; string regex = @"^" + go.name.Replace("-S", "") + @"(-(\w+))?$"; for (int j = 0; j < spliceControl.gos_Models.Length; j++) { if (Regex.IsMatch(spliceControl.gos_Models[j].name, regex)) { GameObject g = AddGameObject(spliceControl.gos_Models[j], go); if (g.GetComponent <UnsModelDescribe>() != null) { InstantiateModel(g, isFirst); } if (isFirst) { break; } } } } }
/// <summary> /// 为所有的Prefab添加 UnsModelDescribe.cs 脚本 /// </summary> /// <param name="tran">添加 脚本的 gameobject</param> private void SetDescribeScript() { AutoBake bake = target as AutoBake; for (int i = 0; i < bake.prefabs.Length; i++) { Transform tran = bake.prefabs[i].transform; List <GameObject> goNames = new List <GameObject>(); AddDescribe(goNames, tran); if (goNames.Count > 0) { UnsModelDescribe describe = null; if ((describe = tran.GetComponent <UnsModelDescribe>()) == null) { describe = tran.gameObject.AddComponent <UnsModelDescribe>(); } describe.gos_Skeleton = goNames.ToArray(); } } }