Esempio n. 1
0
    public void Init(int mapID)
    {
        resSvc   = ResSvc.Instance;
        audioSvc = AudioSvc.Instance;

        //初始化各个管理器
        stateMgr = gameObject.AddComponent <StateMgr>();
        stateMgr.Init();
        skillMgr = gameObject.AddComponent <SkillMgr>();
        skillMgr.Init();


        //加载战场地图
        MapCfgs mapData = resSvc.GetMapCfgData(mapID);

        resSvc.AsyncLoadScene(mapData.sceneName, () =>
        {
            //初始化地图数据
            GameObject map = GameObject.FindGameObjectWithTag("MapRoot");
            mapMgr         = map.GetComponent <MapMgr>();
            mapMgr.Init();

            //初始化地图位置和摄像机位置
            map.transform.localPosition            = Vector3.zero;
            map.transform.localScale               = Vector3.zero;
            Camera.main.transform.position         = mapData.mainCamPos;
            Camera.main.transform.localEulerAngles = mapData.mainCamRote;


            LoadPlayer(mapData);
            audioSvc.PlayBGMusic(Constants.BGHuangYe);
            entityPlayer.Idle();
        });
    }
Esempio n. 2
0
    public void EnterMainCity()
    {
        //获取主城数据
        MapCfgs mapCfgs = resSvc.GetMapCfgData(Constants.MainCityMapID);

        LoginSys.Instance.createWnd.SetWndState(false);
        resSvc.AsyncLoadScene(mapCfgs.sceneName, () =>
        {
            //打开主城场景UI
            mainCityWnd.SetWndState();

            //加主城音乐
            audioSvc.PlayBGMusic(Constants.BGMainCity);

            GameObject map  = GameObject.FindGameObjectWithTag("MapRoot");
            MainCityMap mcm = map.GetComponent <MainCityMap>();
            npcPosTrans     = mcm.NpcPosTrans;

            //加载主角
            LoadPlayer(mapCfgs);
            //人物相机设置
            if (camTrans != null)
            {
                camTrans.gameObject.SetActive(false);
            }
        });
    }
Esempio n. 3
0
    private void LoadPlayer(MapCfgs mapData)
    {
        GameObject player;

        player = resSvc.LoadPrefab(PathDefine.AssissnCityPlayerPrefab, true);
        player.transform.position         = mapData.playerBornPos;
        player.transform.localEulerAngles = mapData.playerBornRote;
        //设置大小
        player.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f);

        //相机初始化
        Camera.main.transform.position         = mapData.mainCamPos;
        Camera.main.transform.localEulerAngles = mapData.mainCamRote;

        playeController = player.GetComponent <PlayerController>();
        playeController.Init();
        nav = player.GetComponent <NavMeshAgent>();
    }
Esempio n. 4
0
    public void LoadPlayer(MapCfgs mapData)
    {
        GameObject player = resSvc.LoadPrefab(PathDefine.ASsissnBattlePlayerPrefab);

        player.transform.position         = mapData.playerBornPos;
        player.transform.localEulerAngles = mapData.playerBornRote;
        player.transform.localScale       = Vector3.one;

        //实例化一个逻辑实体
        entityPlayer = new EntityPlayer();
        //注入状态管理器
        entityPlayer.stateMgr = stateMgr;

        //初始化角色控制器
        PlayerController playerCtrl = player.GetComponent <PlayerController>();

        playerCtrl.Init();
        entityPlayer.controller = playerCtrl;
    }
Esempio n. 5
0
    private void InitMapsCfgs(string path)
    {
        TextAsset xml = Resources.Load <TextAsset>(path);

        if (!xml)
        {
            Debug.LogError("Xml file:" + path + "加载失败,请检查文件是否正确");
        }
        else
        {
            //建立一个XML
            XmlDocument doc = new XmlDocument();
            //读取XML内容
            doc.LoadXml(xml.text);
            //读取root下的子节点 成为一个队列
            XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes;
            //读取节点数据
            for (int i = 0; i < nodLst.Count; i++)
            {
                XmlElement ele = nodLst[i] as XmlElement;
                if (ele.GetAttributeNode("ID") == null)
                {
                    continue;
                }
                int     ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText);
                MapCfgs mc = new MapCfgs
                {
                    ID = ID
                };

                foreach (XmlElement e in nodLst[i].ChildNodes)
                {
                    switch (e.Name)
                    {
                    case "mapName":
                        mc.mapName = e.InnerText;
                        break;

                    case "sceneName":
                        mc.sceneName = e.InnerText;
                        break;

                    case "power":
                        mc.power = int.Parse(e.InnerText);
                        break;

                    case "mainCamPos":
                        string[] valArr = e.InnerText.Split(',');
                        mc.mainCamPos = new Vector3(float.Parse(valArr[0]), float.Parse(valArr[1]), float.Parse(valArr[2]));
                        break;

                    case "mainCamRote":
                        string[] valArr1 = e.InnerText.Split(',');
                        mc.mainCamRote = new Vector3(float.Parse(valArr1[0]), float.Parse(valArr1[1]), float.Parse(valArr1[2]));
                        break;

                    case "playerBornPos":
                        string[] valArr2 = e.InnerText.Split(',');
                        mc.playerBornPos = new Vector3(float.Parse(valArr2[0]), float.Parse(valArr2[1]), float.Parse(valArr2[2]));
                        break;

                    case "playerBornRote":
                        string[] valArr3 = e.InnerText.Split(',');
                        mc.playerBornRote = new Vector3(float.Parse(valArr3[0]), float.Parse(valArr3[1]), float.Parse(valArr3[2]));
                        break;

                    default:
                        break;
                    }
                }

                mapCfgsDict.Add(ID, mc);
            }
        }
    }