Пример #1
0
    private void UpdateAnimaton()
    {
        AnimatorStateInfo info = Anim.GetCurrentAnimatorStateInfo(0);

        switch (State)
        {
        case E_State.Idle:
            if (!info.IsName("Idle"))
            {
                Anim.SetInteger("State", (int)State);
            }
            break;

        case E_State.Laser:
            if (!info.IsName("Laser"))
            {
                Anim.SetInteger("State", (int)State);
            }
            else
            {
                if (info.normalizedTime >= 0.15f && info.normalizedTime < 1)
                {
                    Fire();
                }
                else if (info.normalizedTime >= 1)
                {
                    State = E_State.Idle;
                }
            }
            break;

        case E_State.Throw:
            if (!info.IsName("Throw"))
            {
                Anim.SetInteger("State", (int)State);
            }
            else
            {
                if (info.normalizedTime >= 0.24f && !HasStonrBornEffect)
                {
                    HasStonrBornEffect = true;
                    EffectManager.Instance.Spawn(EffectName.Effect_WStone_Born, StoneBornPoint.transform);
                }

                if (info.normalizedTime >= 0.44f && !HasStone)
                {
                    HasThrow = false;
                    HasStone = true;
                    Stone    = WeaponManager.Instance.CreateWeapon(ModelName.WStone);
                    Stone.transform.SetParent(StoneBornPoint.transform);
                    Stone.transform.localPosition = Vector3.zero;
                    StoneList.Add(Stone);
                }

                if (info.normalizedTime >= 0.76f && !HasThrow)
                {
                    HasThrow = true;
                    Throw();
                }

                if (info.normalizedTime > 0.99f)
                {
                    State = E_State.Idle;
                }
            }
            break;
        }
    }
Пример #2
0
 public void PlayMove(Stone color, int x, int y)
 {
     StoneList.Add(new GoBoardPoint(x, y), color);
     Redraw();
 }