コード例 #1
0
    private IEnumerator StateMachine()
    {
        WaitForSeconds oneSec = new WaitForSeconds(1);

        while (true)
        {
            switch (state)
            {
            case eCoworkerState.Idle:
                rb2d.velocity = Vector2.zero;
                anim.SetBool(AnimHash.Walking, false);
                break;

            case eCoworkerState.Walk:
                int i = Random.Range(0, 2);
                if (i == 1)     // left
                {
                    transform.rotation = Quaternion.Euler(0, 180, 0);
                }
                else     // right
                {
                    transform.rotation = Quaternion.Euler(0, 0, 0);
                }
                rb2d.velocity = transform.right * -speed;
                anim.SetBool(AnimHash.Walking, true);
                break;
            }
            state = (eCoworkerState)Random.Range(0, 2);
            yield return(oneSec);
        }
    }
コード例 #2
0
ファイル: Coworker.cs プロジェクト: Comts/git1
    private IEnumerator CoworkerMove()
    {
        WaitForSeconds oneSec = new WaitForSeconds(1);

        while (true)
        {
            yield return(oneSec);

            mState = (eCoworkerState)Random.Range(0, 2);
            if (Random.Range(0, 2) == 0)
            {
                transform.rotation = Quaternion.Euler(0, 0, 0);
            }
            else
            {
                transform.rotation = Quaternion.Euler(0, 180, 0);
            }
            switch (mState)
            {
            case eCoworkerState.Idle:
                mRB2D.velocity = Vector2.zero;
                mAnim.SetBool(AnimWalkHash, false);
                break;

            case eCoworkerState.Move:
                mRB2D.velocity = transform.right * -1;
                mAnim.SetBool(AnimWalkHash, true);
                break;

            default:
                Debug.LogError("wrong move state " + mState);
                break;
            }
        }
    }
コード例 #3
0
ファイル: Coworker.cs プロジェクト: Comts/git1
#pragma warning restore 0649

    // Start is called before the first frame update
    void Start()
    {
        mRB2D  = GetComponent <Rigidbody2D>();
        mAnim  = GetComponent <Animator>();
        mState = eCoworkerState.Idle;
        StartCoroutine(CoworkerMove());
    }
コード例 #4
0
 // Start is called before the first frame update
 void Start()
 {
     state = eCoworkerState.Idle;
     StartCoroutine(StateMachine());
     StartCoroutine(MakeIncome());
 }