chenxin
2020-11-06 893f645dafa46b818a2edb9fa40337af0c3598d6
Assets/Scripts/TowerDefense/Towers/TowerLevel.cs
@@ -139,15 +139,22 @@
        }
        private Transform mat;
        private MeshRenderer myRender;
        Vector3 normalScale;
        private Vector3 fireScale = new Vector3(1.6f, 1.6f, 1.84f);
        private Vector3 woodScale = new Vector3(1.0f, 1.0f, 1.88f);
        private Vector3 fireScale = new Vector3(1.92f, 1.92f, 2.208f);
        private Vector3 woodScale = new Vector3(1.5f, 1.5f, 2.82f);
        private Vector3 waterScale = new Vector3(1.0f, 1.0f, 1.88f);
        private Vector3 fireOffectp = new Vector3(0f, 0f, -0.15f);
        private Vector3 woodOffectp = new Vector3(0.08f, 0f, 0.2f);
        private void Awake()
        {
            mat = transform.Find("Cube");
            myRender = mat.GetComponent<MeshRenderer>();
            normalScale = new Vector3(1.5f, 1.5f, 1.5f);
        }
@@ -157,8 +164,26 @@
        public void NormalScale()
        {
            mat.localScale = normalScale;
            mat.localPosition = Vector3.zero;
        }
        private bool isAttack;
        /// <summary>
        /// 设置火宝石攻速
        /// </summary>
        /// <param name="isAttack"></param>
        public void SetFireMatSpeed(bool isFast)
        {
            if (isFast && isAttack)
            {
                myRender.material.SetFloat("_Speed", 40);
            }
            else
            {
                //还原10
                myRender.material.SetFloat("_Speed", 8);
            }
        }
        /// <summary>
        /// 上阵塔缩放
        /// </summary>
@@ -168,11 +193,14 @@
            {
                //火元素
                mat.localScale = fireScale;
                mat.localPosition = fireOffectp;
            }
            else if (transform.name.StartsWith("BlinkTower"))
            {
                //木元素
                mat.localScale = woodScale;
                mat.localPosition = woodOffectp;
            }
            else if (transform.name.StartsWith("CopyCatTower"))
            {
@@ -193,32 +221,61 @@
            }
        }
        /// <summary>
        /// 当前的TowerLevel设置为对应怪物的材质显示
        /// </summary>
        /// <param name="mat"></param>
        public void SetTowerMonsterMat(Material mat)
        public void SetTowerMonsterMat(Material material, bool isAttack)
        {
            if (mat == null) return;
            // 查找子结点:
            foreach (Transform t in transform.GetComponentsInChildren<Transform>())
            {
                if (t.name == "Cube")
                {
                    t.GetComponent<MeshRenderer>().material = mat;
                    //Vector3 scale = t.localScale;
            if (material == null) return;
                    // if (!this.bScaleForCombat)
                    // {
                    //     scale.z *= 1.267f;
                    //     t.localScale = scale;
                    //     Vector3 pos = t.localPosition;
                    //     pos.z -= 0.2f;
                    //     t.localPosition = pos;
                    //     bScaleForCombat = true;
                    // }
            this.isAttack = isAttack;
            myRender.material = material;
            if (isAttack)
            {
                if (transform.name.StartsWith("GrowUpTower") || transform.name.StartsWith("BlinkTower"))
                {
                    float t = Mathf.Floor(Time.time);
                    float offect = t % 8;
                    myRender.material.SetFloat("_ChangeTime", Mathf.Floor(Time.time - offect));
                }
            }
            else
            {
                myRender.material.SetFloat("_ChangeTime", Mathf.Floor(Time.time));
            }
            //Debug.Log("当前时间Time.time:"+Time.time);
            // if (transform.name.StartsWith("GrowUpTower") && mat.localPosition != fireOffectp)
            // {
            //     mat.localPosition = fireOffectp;
            // }
            // else if (transform.name.StartsWith("BlinkTower") && mat.localPosition != woodOffectp)
            // {
            //     //木元素
            //     mat.localPosition = woodOffectp;
            // }
            // // 查找子结点:
            // foreach (Transform t in transform.GetComponentsInChildren<Transform>())
            // {
            //     if (t.name == "Cube")
            //     {
            //         t.GetComponent<MeshRenderer>().material = mat;
            //         //Vector3 scale = t.localScale;
            //         // if (!this.bScaleForCombat)
            //         // {
            //         //     scale.z *= 1.267f;
            //         //     t.localScale = scale;
            //         //     Vector3 pos = t.localPosition;
            //         //     pos.z -= 0.2f;
            //         //     t.localPosition = pos;
            //         //     bScaleForCombat = true;
            //         // }
            //     }
            // }
        }
        /// <summary>