角色击中产生变色的效果 (纯C#脚本)

来源:互联网 发布:当前时间与系统时间js 编辑:程序博客网 时间:2024/05/16 05:19
//主函数
 if(true)
                        {
                            it.startShowColor(Util_string_color.getColors(Color_TYPE.RED));
                        }
//startShowColor
  public void startShowColor(Color color)
        {
            isInshowRed = true;
            changeColor(color);
            //////(color + "color");
            showStartTime = Time.time;
        }

//changeColor
    private void changeColor(Color color)
        {
            //Renderer[] rds = transform.GetComponentsInChildren<Renderer>();
            SkinnedMeshRenderer[] rds =   this.obj.transform.GetComponentsInChildren<SkinnedMeshRenderer>();
            //逐一遍历他的子物体
            foreach (SkinnedMeshRenderer r in rds)
            {
                //逐一遍历子物体的子材质
                foreach (Material m in r.materials)
                {
                    ////(this.card.Name + "   " + m.name + " " + r.name + "  " + r.transform.gameObject.name);
                    //m.color = new Color( color.r,color.g,color.b,m.color.a);

                    m.SetColor("_Color", new Color(color.r, color.g, color.b, m.color.a));
                    //SetColor with "_Color"
                }
            }
        }
//oldColor
  public void oldColor()
        {
            if (isInshowRed)
            {
                if (Time.time > showStartTime + SHOW_TIME)
                {
                    changeColor(color);
                    isInshowRed = false;
                }
            }
        }

 protected Color color;
//saveColoer
        void saveColoer()
        {
            SkinnedMeshRenderer[] rds = this.obj.transform.GetComponentsInChildren<SkinnedMeshRenderer>();
            //逐一遍历他的子物体
            foreach (SkinnedMeshRenderer r in rds)
            {
                //逐一遍历子物体的子材质
                foreach (Material m in r.materials)
                {
                    ////(this.card.Name + "   " + m.name + " " + r.name + "  " + r.transform.gameObject.name);
                    //m.color = new Color( color.r,color.g,color.b,m.color.a);

                    color = m.GetColor("_Color");
                    //SetColor with "_Color"
                }
            }
        }

  private bool isInshowRed;
        private float showStartTime;
        public static readonly float SHOW_TIME = 0.5f;


    //获得颜色
        public static Color getColors(Color_TYPE types)
        {
            Color tempColor = new Color();

            if (types == Color_TYPE.WHITE)
            {
                tempColor.r = 255 / 255f;
                tempColor.g = 255 / 255f;
                tempColor.b = 255 / 255f;
                tempColor.a = 255 / 255f;
            }

            if (types == Color_TYPE.WHITE_ZEON)
            {
                tempColor.r = 255 / 255f;
                tempColor.g = 255 / 255f;
                tempColor.b = 255 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.Black)
            {
                tempColor.r = 0 / 255f;
                tempColor.g = 0 / 255f;
                tempColor.b = 0 / 255f;
                tempColor.a = 0 / 255f;
            }
            else if (types == Color_TYPE.BLUE)
            {
                tempColor.r = 0 / 255f;
                tempColor.g = 144 / 255f;
                tempColor.b = 255 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.TitleBlue)
            {
                tempColor.r = 0 / 255f;
                tempColor.g = 183 / 255f;
                tempColor.b = 238 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.YELLOW)
            {
                tempColor.r = 255 / 255f;
                tempColor.g = 255 / 255f;
                tempColor.b = 0 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.PURPLE)
            {
                //tempColor.r = 200 / 255f;
                //tempColor.g = 0 / 255f;
                //tempColor.b = 255 / 255f;
                //tempColor.a = 255 / 255f;
                tempColor.r = 248 / 255f;
                tempColor.g = 43 / 255f;
                tempColor.b = 253 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.ORANGE)
            {
                tempColor.r = 255 / 255f;
                tempColor.g = 160 / 255f;
                tempColor.b = 0 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.RED)
            {
                tempColor.r = 255 / 255f;
                tempColor.g = 102 / 255f;
                tempColor.b = 102 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.MilkYellow)
            {
                tempColor.r = 255 / 255f;
                tempColor.g = 247 / 255f;
                tempColor.b = 153 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.Green)
            {
                //tempColor.r = 0 / 255f;
                //tempColor.g = 255 / 255f;
                //tempColor.b = 0 / 255f;
                //tempColor.a = 255 / 255f;
                tempColor.r = 102 / 255f;
                tempColor.g = 255 / 255f;
                tempColor.b = 51 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.Gray)
            {
                tempColor.r = 125 / 255f;
                tempColor.g = 125 / 255f;
                tempColor.b = 125 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.BlackNoAlpha)
            {
                tempColor.r = 0 / 255f;
                tempColor.g = 0 / 255f;
                tempColor.b = 0 / 255f;
                tempColor.a = 0 / 255f;
            }
            else if (types == Color_TYPE.HurtRedTop)
            {
                tempColor.r = 198 / 255f;
                tempColor.g = 0 / 255f;
                tempColor.b = 0 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.HurtRedBottom)
            {
                tempColor.r = 255 / 255f;
                tempColor.g = 0 / 255f;
                tempColor.b = 0 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.HurtGreenTop)
            {
                tempColor.r = 4 / 255f;
                tempColor.g = 176 / 255f;
                tempColor.b = 0 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.HurtGreenBottom)
            {
                tempColor.r = 7 / 255f;
                tempColor.g = 255 / 255f;
                tempColor.b = 0 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.HurtYellowTop)
            {
                tempColor.r = 222 / 255f;
                tempColor.g = 137 / 255f;
                tempColor.b = 0 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.HurtYellowBottom)
            {
                tempColor.r = 255 / 255f;
                tempColor.g = 220 / 255f;
                tempColor.b = 0 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.HurtRED)
            {
                tempColor.r = 255 / 255f;
                tempColor.g = 0 / 255f;
                tempColor.b = 0 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.GrayWhite)
            {
                tempColor.r = 160 / 255f;
                tempColor.g = 160 / 255f;
                tempColor.b = 160 / 255f;
                tempColor.a = 255 / 255f;
            }
            else if (types == Color_TYPE.WoodYellow)
            {
                tempColor.r = 254 / 255f;
                tempColor.g = 204 / 255f;
                tempColor.b = 176 / 255f;
                tempColor.a = 255 / 255f;
            }

           
            return tempColor;
        }

原创粉丝点击