unity 做一个旋转起来的转盘(非抽奖)

并不是转盘大抽奖那种,而是

捕鱼游戏中的这种奖励效果,背景那个图是转动的,数字是左右晃动

首先,这些写在需要效果出现的地方

timer = 0; //刷新计时器
isTurn = true;
score[fishDeadDto.KillCorner].text = fishDeadDto.Money.ToString();// 设置得分,将打死鱼得到的分数显示在转盘上
StartCoroutine(turn(fishDeadDto.KillCorner));// 转盘开始转动
canVisible = true;
scaleAni(fishDeadDto.KillCorner, fishDeadDto.Name);// 从小变大放大出现

就这些,毕竟没有抽奖只是个效果

    float timer;// 转盘的计时器
    bool isTurn;// 转盘是否转动
    bool canVisible; // 放大
    /// <summary>
    /// 缩放动画  文本名字
    /// </summary>
    void scaleAni(int corner, string name)
    {
        AudioManager.Instance.PlayEffectReward(AudioManager.Sound_Bonus);  //转盘音效
        if (canVisible)
        {
            turnTable[corner].localScale = Vector3.zero;
            turnTable[corner].DOScale(Vector3.one, 0.75f).SetEase(Ease.OutCirc);// 0.75秒放大出现
            canVisible = false;
        }
        txt[corner].text = "  奖金" + name;// 显示鱼的名字
    }
    /// <summary>
    /// 转动
    /// </summary>
    /// <param name="corner"></param>
    /// <returns></returns>
    IEnumerator turn(int corner)
    {
        while (isTurn)
        {
            timer += Time.deltaTime;
            if (timer <= 4f) // 转四秒
                turnTable[corner].transform.Rotate(Vector3.forward * 100, Space.World);
            else
            {
                isTurn = false;
                this.Reward[corner].gameObject.SetActive(false);
            }
            yield return new WaitForEndOfFrame(); // 每帧调用
        }
    }

猜你喜欢

转载自blog.csdn.net/Mediary/article/details/89189704
今日推荐