1. 程式人生 > >FPS遊戲之Player全屏掉血

FPS遊戲之Player全屏掉血

最近在做策劃給的一些關於FPS型別的需求,Demo基本已經成型,接下來整理並記錄,高手略過,不喜勿噴!!!

主要是用了DoTween差件的ToAlpha方法

思路:Player受到傷害,顯示UI血圖,0.5s內圖片alpha設定成0

    private Image uiSprite;//全屏血圖
    private Color _alpha;//全屏血圖 alpha
    private Color _childAlpha; //小血塊 alph

    private Image childImage;
	
	void Awake () {
        _instance = this;
        uiSprite = GetComponent<Image>();
        childImage = transform.GetChild(0).GetComponent<Image>();

        uiSprite.enabled = false;
        childImage.enabled = false;
        _alpha = uiSprite.color;
        _childAlpha = childImage.color;
    }


    public void Show() {
        uiSprite.enabled = true;
        childImage.enabled = true;
        //childImage.CrossFadeAlpha(0, 0.5f, true);

        Tween tc = DOTween.ToAlpha
        (
            () => childImage.color,
            (c) => childImage.color = c,
            0,
            0.5f
        );

        Tween t = DOTween.ToAlpha
         (
             () => uiSprite.color,
             (c) => uiSprite.color = c,
             0,
             0.5f
         );
        t.OnComplete(() =>
        {
            uiSprite.color = _alpha;
            uiSprite.enabled = false;

            childImage.color = _childAlpha;
            childImage.enabled = false;
        });

    }