wangguan
2020-11-25 9969ed162f8aa4bd0b977a3c1eba45358eb01f72
修改推拽BUG
调整JSON读取回调
增加新手一大波怪物提示
2 files deleted
11 files modified
2959 ■■■■ changed files
Assets/Resources/UI/Guide/GameObject.prefab 2584 ●●●●● patch | view | raw | blame | history
Assets/Resources/UI/Guide/GameObject.prefab.meta 7 ●●●●● patch | view | raw | blame | history
Assets/Resources/UI/Guide/GuidePanel.prefab 156 ●●●●● patch | view | raw | blame | history
Assets/Scripts/Common/GameConfig.cs 5 ●●●● patch | view | raw | blame | history
Assets/Scripts/Event/EventType.cs 2 ●●●●● patch | view | raw | blame | history
Assets/Scripts/Guide/GuideConfig.cs 7 ●●●●● patch | view | raw | blame | history
Assets/Scripts/Guide/GuideCtrl.cs 30 ●●●● patch | view | raw | blame | history
Assets/Scripts/Guide/GuidePanel.cs 87 ●●●●● patch | view | raw | blame | history
Assets/Scripts/Json/JsonDataCenter.cs 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs 9 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseTouchInput.cs 9 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs 3 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/UI/EndlessUIStart.cs 58 ●●●● patch | view | raw | blame | history
Assets/Resources/UI/Guide/GameObject.prefab
File was deleted
Assets/Resources/UI/Guide/GameObject.prefab.meta
File was deleted
Assets/Resources/UI/Guide/GuidePanel.prefab
@@ -10585,6 +10585,85 @@
  m_Script: {fileID: 11500000, guid: b853ac60c2d385d4dbc98c0d558451bb, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
--- !u!1 &4194100260256678997
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 3729847023059857890}
  - component: {fileID: 420363371752327425}
  - component: {fileID: 4803840975682259644}
  m_Layer: 5
  m_Name: Text
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &3729847023059857890
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4194100260256678997}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 5284319985334853514}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &420363371752327425
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4194100260256678997}
  m_CullTransparentMesh: 0
--- !u!114 &4803840975682259644
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4194100260256678997}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
  m_RaycastTarget: 1
  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_FontData:
    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
    m_FontSize: 50
    m_FontStyle: 0
    m_BestFit: 0
    m_MinSize: 3
    m_MaxSize: 50
    m_Alignment: 4
    m_AlignByGeometry: 0
    m_RichText: 1
    m_HorizontalOverflow: 0
    m_VerticalOverflow: 0
    m_LineSpacing: 1
  m_Text: "\u5927\u6CE2\u654C\u4EBA\u6765\u88AD"
--- !u!1 &4283419727313149636
GameObject:
  m_ObjectHideFlags: 0
@@ -16623,6 +16702,82 @@
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!1 &8581094352095596645
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 5284319985334853514}
  - component: {fileID: 3706244911713911788}
  - component: {fileID: 3573362040006469024}
  m_Layer: 5
  m_Name: Image_Warning
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &5284319985334853514
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 8581094352095596645}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 3729847023059857890}
  m_Father: {fileID: 5529930024907350475}
  m_RootOrder: 13
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0.5}
  m_AnchorMax: {x: 0.5, y: 0.5}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 700, y: 300}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3706244911713911788
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 8581094352095596645}
  m_CullTransparentMesh: 0
--- !u!114 &3573362040006469024
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 8581094352095596645}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 0}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!1 &8765142430134729489
GameObject:
  m_ObjectHideFlags: 0
@@ -16666,6 +16821,7 @@
  - {fileID: 4438159195928217730}
  - {fileID: 4727596860417850039}
  - {fileID: 1725281817447037252}
  - {fileID: 5284319985334853514}
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
Assets/Scripts/Common/GameConfig.cs
@@ -50,7 +50,10 @@
        /// 是否是新手
        /// </summary>
        public static bool IsNewbie = false;
        /// <summary>
        /// 是否JSON读取完毕
        /// </summary>
        public static bool JsonReadDone = false;
        /// <summary>
        /// 新手模式是否可以推拽塔
        /// </summary>
Assets/Scripts/Event/EventType.cs
@@ -33,6 +33,8 @@
        SkillStep,
        //修改步骤为拖拽交换位置
        DragStep,
        //显示大波敌人来袭文字
        ShowWarningTips,
        //第三关小怪5路全出
        CreateThirdWave,
        //第三关小怪5路全出完毕
Assets/Scripts/Guide/GuideConfig.cs
@@ -39,7 +39,8 @@
        //9
        //"这样就可以了,刚好水精灵也到达战场了。",
        "水精灵的攻击会使敌人`,快去召唤他试试吧。",
        //"水精灵的攻击会使敌人`,快去召唤他试试吧。",
        "继续购买,看能抽到什么精灵",
        //10
        //"点击按钮购买宝石",
@@ -48,8 +49,8 @@
        //11
        //"不好不好,敌人快冲破防线了。",
        //"还好我留了一手,送你一个技能宝石,快用它来化解危机吧。",
        "属性相克",
        "交换打的更快",
        "面对血厚的怪物,使用玉米精灵对付它",
        "拖动可随时交换精灵位置!",
        //12
        "不好不好,敌人太多了",
Assets/Scripts/Guide/GuideCtrl.cs
@@ -43,6 +43,7 @@
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateWaterLv1, CreateWaterLv1);
        //EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillStep, SkillStep);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.DragStep, DragStep);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.ShowWarningTips, ShowWarningTips);//开始第三关,弹一大波敌人
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateThirdWaveDone, CreateThirdWaveDone);
        //EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillRelease, SkillRelease);
@@ -524,23 +525,34 @@
        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.RestartWave);
    }
    /// <summary>
    /// 大波敌人来袭
    /// </summary>
    private void ShowWarningTips()
    {
        CommonDebugHelper.Debug("这里需要显示大波敌人来袭");
        panel.Step11_End();
        //结束后需要
        //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateThirdWave);
    }
    private void CreateThirdWaveDone()
    {
        currentIndex = -1;
        ChangeStep(GuideEnum.Step12);
    }
    private void SkillRelease()
    {
        panel.SkillRelease();
    }
    // private void SkillRelease()
    // {
    //     panel.SkillRelease();
    // }
    private void SkillReleaseDone()
    {
        currentIndex = -1;
        ChangeStep(GuideEnum.Step12);
    }
    // private void SkillReleaseDone()
    // {
    //     currentIndex = -1;
    //     ChangeStep(GuideEnum.Step12);
    // }
    private void Step12()
    {
Assets/Scripts/Guide/GuidePanel.cs
@@ -49,6 +49,7 @@
    Button skillBtn;//
    Vector2 skillBtnPos = new Vector2(459, 280);
    private Image warningImg;//大波敌人来袭提示
    /// <summary>
    /// 关闭所有UI
    /// </summary>
@@ -143,6 +144,9 @@
        dragHandImg = transform.Find("ImageHand").GetComponent<RectTransform>();
        dragHandImg.gameObject.SetActive(false);
        warningImg = transform.Find("Image_Warning").GetComponent<Image>();
        warningImg.gameObject.SetActive(false);
    }
@@ -346,7 +350,7 @@
    /// <summary>
    /// 第九步,
    /// 第九步,购买水元素,第二步上阵
    /// </summary>
    /// <param name="str"></param>
    /// <param name="currentIndex">当前第几步</param>
@@ -392,7 +396,7 @@
    }
    /// <summary>
    /// 第12步,引导释放技能
    /// 第12步,弃用
    /// </summary>
    public void Step11(int currentIndex, string str)
    {
@@ -430,7 +434,7 @@
    /// <summary>
    /// 第12步,引导释放技能
    /// 第12步,交换水火塔
    /// </summary>
    public void Step11Drag(int currentIndex)
    {
@@ -447,8 +451,9 @@
            btnImg.raycastTarget = false;
            InitRectGuidance(btnImg, 75, 80, tmpOffect);
            SetRimPos(towerPos2.gameObject);
            StartCoroutine(ShowRimTip("拖动"));
            //SetRimPos(towerPos2.gameObject);
            SetRimPos(towerPos2.gameObject, new Vector2(0, 30));
            StartCoroutine(ShowRimTip("交换"));
            ShowDragPath(towerPos2.GetComponent<RectTransform>().anchoredPosition, towerPos.GetComponent<RectTransform>());
        }
@@ -458,8 +463,10 @@
            btnImg.raycastTarget = false;
            InitRectGuidance(btnImg, 75, 80, tmpOffect);
            SetRimPos(towerPos.gameObject);
            StartCoroutine(ShowRimTip("拖动"));
            //SetRimPos(towerPos.gameObject);
            SetRimPos(towerPos.gameObject, new Vector2(0, 10));
            StartCoroutine(ShowRimTip("交换"));
        }
        else if (currentIndex == 2)
@@ -467,6 +474,33 @@
            SetRimActive(false);
            StopShowDragPath(true);
            CloseMask();
        }
    }
    /// <summary>
    /// 一大波敌人
    /// </summary>
    public void Step11_End()
    {
        warningImg.color = new Color(1.0f, 1.0f, 1.0f, 0);
        warningImg.gameObject.SetActive(true);
        colorCount = 0;
        SetWarningColor();
    }
    int colorCount = 0;
    private void SetWarningColor()
    {
        if (colorCount < 4)
        {
            colorCount++;
            warningImg.DOFade(colorCount % 2, 1.0f).OnComplete(SetWarningColor);
            CommonDebugHelper.Debug($"执行了{colorCount}次");
        }
        else
        {
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateThirdWave);
            warningImg.gameObject.SetActive(false);
        }
    }
@@ -490,7 +524,9 @@
        AddButtonListener(skillBtn.gameObject, ac);
        Image btnImg = skillBtn.GetComponent<Image>();
        InitRectGuidance(btnImg, 79, 79f, Vector2.one);
        SetRimPos(skillBtn.gameObject);
        //SetRimPos(skillBtn.gameObject);
        SetRimPos(skillBtn.gameObject, new Vector2(-15, 10));
        text_Tip.text = str;//动态改变长度
        StartCoroutine(ShowRimTip(str));
    }
@@ -554,6 +590,41 @@
    }
    /// <summary>
    /// 设置边框的大小和位置
    /// </summary>
    /// <param name="target"></param>
    private void SetRimPos(GameObject target, Vector2 offect)
    {
        SetRimActive(true);
        RectTransform rt = target.GetComponent<RectTransform>();
        if (target.gameObject.name == "TowerBuyBtn")
        {
            image_Rim_Rect.anchoredPosition = towerBuyBtnPos - tmpOffect;
        }
        else if (target.gameObject.name == "FireSkillBtn")
        {
            image_Rim_Rect.anchoredPosition = skillBtnPos - tmpOffect;
        }
        else
        {
            image_Rim_Rect.anchoredPosition = rt.anchoredPosition;
        }
        image_Rim_Rect.sizeDelta = (rt.sizeDelta * rt.localScale) + rimOffset;
        if (image_Rim_Rect.sizeDelta.x > 200)
        {
            particle_1.SetActive(false);
            particle_2.SetActive(true);
        }
        else
        {
            particle_1.SetActive(true);
            particle_2.SetActive(false);
        }
        image_Tip_Rect.anchoredPosition = new Vector2(image_Rim_Rect.anchoredPosition.x, image_Rim_Rect.anchoredPosition.y + 74 / 2 + image_Rim_Rect.sizeDelta.y / 2);
        image_Tip_Rect.anchoredPosition += offect;
    }
    IEnumerator ShowRimTip(string str)
    {
        text_Tip.text = str;//动态改变长度
Assets/Scripts/Json/JsonDataCenter.cs
@@ -270,7 +270,7 @@
            EndlessBossData.Init();
            EndlessBossSkillData.Init();
            //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.JsonDataReadDone);
            GameConfig.JsonReadDone = true;
        }
    }
}
Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs
@@ -157,10 +157,7 @@
                    Debug.Log("新手不可以拖拽");
                    return;
                }
                else
                {
                    GuideCtrl.Ins.BeginDrag11_1();
                }
            }
            // select towers
            m_GameUI.TrySelectTower(pointer);
@@ -181,6 +178,10 @@
                    currentTimeScale = Time.timeScale;
                    Time.timeScale = 0.5f;
                }
                else
                {
                    GuideCtrl.Ins.BeginDrag11_1();
                }
            }
        }
Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseTouchInput.cs
@@ -255,10 +255,7 @@
                    Debug.Log("新手不可以拖拽");
                    return;
                }
                else
                {
                    GuideCtrl.Ins.BeginDrag11_1();
                }
            }
            //按照鼠标键盘的修改
            // select towers
@@ -283,6 +280,10 @@
                    currentTimeScale = Time.timeScale;
                    Time.timeScale = 0.5f;
                }
                else
                {
                    GuideCtrl.Ins.BeginDrag11_1();
                }
            }
        }
Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs
@@ -437,7 +437,8 @@
                {
                    //Debug.Log("开始第三关???");
                    isSecondLevelCompleted = true;
                    EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateThirdWave);
                    EndlessUIStart.instance.Pause();
                    EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.ShowWarningTips);
                }
            }
        }
Assets/Scripts/TowerDefense/UI/EndlessUIStart.cs
@@ -77,8 +77,12 @@
            root.AddComponent<JsonDataReader>();
            root.AddComponent<JsonDataInit>();
        }
        firstStart = true;
        //EventCenter.Ins.Add((int)KTGMGemClient.EventType.JsonDataReadDone, JsonDataReadDone);
    }
    Vector2 tmpOffect;//计算适配的偏移量
    bool firstStart = true;
    // Start is called before the first frame update
    void Start()
    {
@@ -103,7 +107,7 @@
        float tmpScale = ratio / ts.localScale.x - 1.0f;
        float offect = tmpScale * (ts.sizeDelta.y * 0.5f);
        //Debug.Log($"tmpScale:{tmpScale}  offect:{offect}");
        Vector2 tmpOffect = new Vector2(0, offect);
        tmpOffect = new Vector2(0, offect);
        transform.Find("Panel/Bottom").GetComponent<RectTransform>().anchoredPosition += tmpOffect;
        transform.Find("Panel/TowerBuyBtn").GetComponent<RectTransform>().anchoredPosition += tmpOffect;
        transform.Find("Panel/SwitchSpeed").GetComponent<RectTransform>().anchoredPosition += tmpOffect;
@@ -119,23 +123,9 @@
        darkGroundImg.GetComponent<RectTransform>().offsetMax -= tmpOffect * 0.5f;
        darkGroundImg.SetActive(false);
        //查询是否已经做过了新手引导
        int guide = PlayerPrefs.GetInt("GemBattleGuide");
        GameConfig.IsNewbie = guide == 0;
        if (GameConfig.IsNewbie)
        {
            Debug.Log("开始新手引导");
            GameConfig.CanDragTower = false;
            Pause();
            HideUIMask();
            countDownTextNew.text = "";
            countDownTextNew.gameObject.SetActive(false);
            GameObject guideObj = Instantiate(Resources.Load<GameObject>("UI/Guide/GuidePanel"), transform.Find("Panel"));
            guideObj.GetComponent<RectTransform>().offsetMin += tmpOffect;
            AddGuideEvent();
        }
        //CheckIsNewbie();
        GameConfig.EndlessOpenAttackTowerCount = 0;
        GameConfig.EndlessBuyTowerCount = 0;
@@ -168,6 +158,26 @@
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillLevelUpBuff, SkillLevelUpBuff);
    }
    private void CheckIsNewbie()
    {
        //GameConfig.IsNewbie = false;
        if (GameConfig.IsNewbie)
        {
            Debug.Log("开始新手引导");
            GameConfig.CanDragTower = false;
            Pause();
            HideUIMask();
            countDownTextNew.text = "";
            countDownTextNew.gameObject.SetActive(false);
            GameObject guideObj = Instantiate(Resources.Load<GameObject>("UI/Guide/GuidePanel"), transform.Find("Panel"));
            guideObj.GetComponent<RectTransform>().offsetMin += tmpOffect;
            AddGuideEvent();
            transform.Find("Panel/SwitchSpeed").gameObject.SetActive(false);
        }
    }
    /// <summary>
@@ -326,6 +336,8 @@
    /// </summary>
    private void CreateThirdWave()
    {
        CommonDebugHelper.Debug($"开始下一关");
        EndlessLevelManager.instance.NewbieUpdateLevel();
        beginDragStep = false;
        guideThirdWaveStep = true;
@@ -371,6 +383,8 @@
    {
        EndlessLevelManager.instance.RestartWave();
        GameConfig.IsNewbie = false;
        transform.Find("Panel/SwitchSpeed").gameObject.SetActive(true);
    }
    /// <summary>
@@ -548,6 +562,16 @@
    // Update is called once per frame
    void Update()
    {
        if (firstStart)
        {
            if (!GameConfig.JsonReadDone)
                return;
            else
            {
                firstStart = false;
                CheckIsNewbie();
            }
        }
        if (isPause) return;
        if (bGameStart)