Ejemplo n.º 1
0
    // 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);
        }
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    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);
        }
    }
Ejemplo n.º 4
0
    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);
        }
    }