Beispiel #1
0
	void RequestDestroy( AsBaseEntity _entity)
	{
		if( ( eModelLoadingState.Started == _entity.CheckModelLoadingState()) || ( false == _entity.CheckPartsLoaded()))
		{

//			Debug.Log( "AsEntityManager::RequestDestroy: insert destruction. entity = " + _entity + ", _entity.GetInstanceID() = " + _entity.GetInstanceID());
//			Debug.Log( "AsEntityManager::RequestDestroy: _entity.CheckModelLoadingState() = " + _entity.CheckModelLoadingState() + ", _entity.CheckPartsLoaded() = " + _entity.CheckPartsLoaded());
			m_queWaitingEntity.Enqueue( _entity);
		}
		else
		{
//			Debug.Log( "AsEntityManager::RequestDestroy: inserted entity's model is already loaded. Destroy( _entity.GetInstanceID()) = " + _entity.GetInstanceID());
			_entity.DestroyThis();
#if AUTOMOVE_EFFECT
			if( _entity.isNeedAutoMoveEffect)
				AsEffectManager.Instance.PlayEffect( "FX/Effect/COMMON/Fx_Common_AutoMove", _entity.transform.position, false, 0f, 1.0f);
			//if( _entity.isNeedAutoMoveEffect && null != AsSoundManager.Instance)
			//	AsSoundManager.Instance.PlaySound( "Sound/PC/Common/Se_Common_AutoMove", _entity.transform.position, false);
#endif
			Destroy( _entity.gameObject);
			return;
		}

		if( m_DestroyingEntity == false && gameObject.active == true)
			StartCoroutine( DestroyingSequence());
	}