// Use this for initialization void Start() { SceneItemAgent target = gameObject.AddComponent <SceneItemAgent>(); target.tag = "SceneItemAgent"; target.Load(model); target.LoadCustom(name, null);//自定义的一些属性,name=damage100 target.ApplyPost(); if (target.root != null) { target.root.gameObject.SetActive(true); } }
GameObject CreateObj(string des, Transform pos, Vector3 forward) { GameObject obj = new GameObject(des); obj.transform.position = Vector3.zero; obj.transform.rotation = Quaternion.identity; obj.transform.localScale = Vector3.one; obj.transform.SetParent(Loader.Instance == null ? null : Loader.Instance.transform); obj.transform.position = pos.position + Vector3.up * 50 + forward * 35; SceneItemAgent agent = obj.AddComponent <SceneItemAgent>(); agent.Load(des); agent.ApplyPost(); agent.SetAsDrop(); MeteorManager.Instance.OnGenerateSceneItem(agent); return(obj); }
public void LoadDynamicTrigger(string sceneItems) { //return; //mapObjectList.Clear(); DesFile des = DesLoader.Ins.Load(sceneItems); for (int i = des.ObjectCount; i < des.SceneItems.Count; i++) { //一些特殊物件不需要加脚本,只相当于环境,也不用保存,只设置位置. if (des.SceneItems[i].name.StartsWith("D_user") || des.SceneItems[i].name.StartsWith("D_team") || des.SceneItems[i].name.StartsWith("D_User")) { continue; } string type; bool active = false; if (des.SceneItems[i].ContainsKey("ticket", out type)) { string[] subtype = type.Split(new char[] { ',' }, System.StringSplitOptions.RemoveEmptyEntries); for (int t = 0; t < subtype.Length; t++) { if (int.Parse(subtype[t]) == (int)CombatData.Ins.GGameMode) { active = true; break; } } } else { active = true; } if (!active) { continue; } GameObject obj = new GameObject(); obj.name = des.SceneItems[i].name; string model; if (des.SceneItems[i].ContainsKey("model", out model)) { if (!string.IsNullOrEmpty(model)) { //先检查这个模型是否存在,1:安装包内带有资源 2:外传资源里带有资源, //若都不存在,则忽略这个物件 if (blacklist.IndexOf(model) != -1) { continue; } SceneItemAgent target = obj.AddComponent <SceneItemAgent>(); target.tag = "SceneItemAgent"; target.Load(model); target.LoadCustom(des.SceneItems[i].name, des.SceneItems[i].custom);//自定义的一些属性,name=damage100 target.ApplyPost(); if (target.root != null) { target.root.gameObject.SetActive(active); } } } //环境特效.一直存在的特效.和特效挂载点 string effect; if (des.SceneItems[i].ContainsKey("effect", out effect)) { SFXLoader.Ins.PlayEffect(string.Format("{0}.ef", effect), obj); } obj.transform.position = des.SceneItems[i].pos; obj.transform.rotation = des.SceneItems[i].quat; obj.transform.SetParent(transform); } }
public void LoadDynamicTrigger(Level lev) { //return; //mapObjectList.Clear(); DesFile des = DesLoader.Instance.Load(lev.goodList); for (int i = des.ObjectCount; i < des.SceneItems.Count; i++) { //一些特殊物件不需要加脚本,只相当于环境,也不用保存,只设置位置. if (des.SceneItems[i].name.StartsWith("D_user") || des.SceneItems[i].name.StartsWith("D_team") || des.SceneItems[i].name.StartsWith("D_User")) { continue; } //string effect; //if (des.SceneItems[i].ContainsKey("effect", out effect)) // continue; //if (des.SceneItems[i].name.StartsWith("D_wp") || // des.SceneItems[i].name.StartsWith("D_it") || // des.SceneItems[i].name.StartsWith("D_It") || // des.SceneItems[i].name.StartsWith("D_BBox") || // des.SceneItems[i].name.StartsWith("D_RJug") || // des.SceneItems[i].name.StartsWith("D_Jug")) // continue; string type; bool active = false; if (des.SceneItems[i].ContainsKey("ticket", out type)) { //剧情模式出现 string[] subtype = type.Split(new char[] { ',' }, System.StringSplitOptions.RemoveEmptyEntries); for (int t = 0; t < subtype.Length; t++) { if (int.Parse(subtype[t]) == 6) { active = true; break; } } } else { active = true; } if (!active) { continue; } //某些类型的不要加载,包括有ticket却不包含6类型的, GameObject obj = new GameObject(); obj.name = des.SceneItems[i].name; string model; if (des.SceneItems[i].ContainsKey("model", out model)) { if (!string.IsNullOrEmpty(model)) { SceneItemAgent target = obj.AddComponent <SceneItemAgent>(); target.Load(model); target.LoadCustom(des.SceneItems[i].name, des.SceneItems[i].custom);//自定义的一些属性,name=damage100 target.ApplyPost(); MeteorManager.Instance.OnGenerateSceneItem(target); } } //环境特效.一直存在的特效.和特效挂载点 string effect; if (des.SceneItems[i].ContainsKey("effect", out effect)) { SFXLoader.Instance.PlayEffect(effect, obj); } obj.transform.position = des.SceneItems[i].pos; obj.transform.rotation = des.SceneItems[i].quat; obj.transform.SetParent(transform); } }