Skip to content

Instantly share code, notes, and snippets.

@abebemukuru
Created February 22, 2020 13:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abebemukuru/81f8f2bded63fd26c5dc776808f8d5ec to your computer and use it in GitHub Desktop.
Save abebemukuru/81f8f2bded63fd26c5dc776808f8d5ec to your computer and use it in GitHub Desktop.
道作成
/// <summary>
/// シーケンス 道作成
/// </summary>
private void SeqCreatePath()
{
if( m_cSeqController.GetStep() == 0 )
{
if( !AstarManager.HasInstance )
{
ConsoleLog.LogError( "AsterManagerが存在しません" );
return;
}
// 計算開始
AstarManager.Instance.CalcStart();
// 次のステップへ
m_cSeqController.NextStep();
}
// 計算終了待ち
else if( m_cSeqController.GetStep() == 1 )
{
// 計算が終了していない場合
if( !AstarManager.Instance.IsCalcFinish() )
{
return;
}
// 次のステップへ
m_cSeqController.NextStep();
}
// 計算結果をFieldDataに反映
else if( m_cSeqController.GetStep() == 2 )
{
var cAstarManager = AstarManager.Instance;
// 経路データ取得
var cRouteData = cAstarManager.GetRouteData();
// FieldDataに反映
for(int i = 0; i < cRouteData.Count;++i )
{
var cData = cRouteData[ i ];
int nIndex = GetFieldDataIndex( cData.m_nPosX,cData.m_nPosY );
var cFieldData = m_lstFieldData[ nIndex ];
if( cFieldData == null )
{
ConsoleLog.LogError( "フィールドデータ取得に失敗" );
continue;
}
// 経路データに上書きできる場合
if( IsOverriteRouteType( cFieldData.m_eType ) )
{
cFieldData.m_eType = cData.m_eType;
}
}
// 次のステップへ
m_cSeqController.NextStep();
}
// 事後処理
else if( m_cSeqController.GetStep() == 3 )
{
// パラメーターのリセット
AstarManager.Instance.ResetParams();
// 地形作成へ遷移
m_cSeqController.ChangeState( (int)ESEQ_TYPE.eCREATE_TERRAIN );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment