public override void AwakeInitInfo() { // 解析JSON,获取所有面板的路径信息 LoadJsonTool.ParseUiPanelTypeJsonData(ref panelPathDict); /* // 把场景里面的已经存在的 UI 实例塞进字典 * var panels = FindObjectsOfType<BasePanel>().ToList(); * panels.Sort((x, y) => x.transform.GetSiblingIndex() - y.transform.GetSiblingIndex()); // 升序 * panels.ForEach(x => * { * panelDict.Add(x.uiType, x); * // 入栈 * panelStack.Push(x); * //Debug.Log($"当前入栈的是:{x.uiType} 它的索引为:{x.transform.GetSiblingIndex()}"); * });*/ }
/// <summary> /// 用于初始化 /// </summary> private void Init() { // 先加载地图数据 var map = GameManager.instance.currentMapData; // 地图数据为空则加载本地资源 mapDto = map ?? LoadJsonTool.ParseLocalMapJsonData(); // 初始化角色信息 pm.speed = mapDto.Initial.Speed; pm.runDivisor = mapDto.Initial.RunDivisor; pm.jumpSleepDivisor = mapDto.Initial.JumpSpeedDivisor; pm.climbSpeed = mapDto.Initial.ClimbSpeed; pm.crouchSpeedDivisor = mapDto.Initial.CrouchSpeedDivisor; pm.jumpForce = mapDto.Initial.JumpForce; pm.jump2ForceDivisor = mapDto.Initial.Jump2ForceDivisor; pm.climbLateralForce = mapDto.Initial.ClimbLateralForce; pm.transform.position = new Vector3Int(mapDto.Initial.X, mapDto.Initial.Y, 1); playerBirth = pm.transform.position; // 设置角色 pm.GetComponent <SpriteRenderer>().color = Color.white; pm.rb.constraints = RigidbodyConstraints2D.FreezeRotation; // 避免歪了 pm.transform.rotation = Quaternion.identity; // 给个向下的力,否则动不了 pm.rb.AddForce(new Vector2(0, -1), ForceMode2D.Impulse); // 开始设置背景信息 buildBackground.StartSetBackground(mapDto); // 初始化格子 buildTileMap.StartCreateMap(mapDto); // 初始化道具 buildMapProp.StartCreateProps(mapDto); }