//---------------------------------------------------------------------------------------------------- /// <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(); } } }
//---------------------------------------------------------------------------------------------------- /// <summary> /// コイン探索のリセット /// </summary> void ResetCoinAction() { m_approachTime = 0; m_targetCoin = Vector3.zero; CoinAction = GetCoinAction.Search; }