Esempio n. 1
0
    //----------------------------------------------------------------------------------------------------
    /// <summary>
    /// コインの取得を考える
    /// </summary>
    void ThinkGetCoin()
    {
        foreach (var coins in SpaceGrasp.Coins)
        {
            //加速を使っていないかつコイン探索中
            if (CoinAction == GetCoinAction.Search && SpState != ActionState.Using)
            {
                //コインを見つける
                if (coins.activeSelf == true)
                {
                    CoinAction         = GetCoinAction.Approach;
                    m_targetCoinObject = coins;
                    m_targetCoin       = coins.transform.position;
                    m_beforeCoinNum    = NumOfCoins;
                }
            }
        }

        if (CoinAction != GetCoinAction.Search)
        {
            playerToCoinDistanceY = transform.position.y - m_targetCoin.y;
        }

        if (CoinAction == GetCoinAction.Approach)
        {
            m_approachTime += Time.deltaTime;

            if (m_targetCoinObject.activeSelf == true)
            {
                //距離が3より大きい
                if (m_beforeCoinNum != NumOfCoins || Mathf.Abs(playerToCoinDistanceY) > SEARCH_LIMIT_DISTANCE)
                {
                    ResetCoinAction();
                }
            }
            else
            {
                //ターゲットが消えた
                ResetCoinAction();
            }

            //コインに近づく時間の制限
            if (m_approachTime > APPROACH_LIMIT_TIME)
            {
                ResetCoinAction();
            }
        }
    }
Esempio n. 2
0
 //----------------------------------------------------------------------------------------------------
 /// <summary>
 /// コイン探索のリセット
 /// </summary>
 void ResetCoinAction()
 {
     m_approachTime = 0;
     m_targetCoin   = Vector3.zero;
     CoinAction     = GetCoinAction.Search;
 }