예제 #1
0
	private void OnTriggerEnter(Collider collider)
	{
		//IL_0042: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Unknown result type (might be due to invalid IL or missing references)
		//IL_005b: Unknown result type (might be due to invalid IL or missing references)
		//IL_007f: Unknown result type (might be due to invalid IL or missing references)
		if (!(brain == null) && !(_collider == null) && _collider.get_enabled() && collider.get_isTrigger() && !(collider.get_gameObject() == this.get_gameObject()))
		{
			StageObject stageObject = null;
			BulletObject component = collider.get_gameObject().GetComponent<BulletObject>();
			stageObject = ((!(component != null)) ? collider.get_gameObject().GetComponentInParent<StageObject>() : component.stageObject);
			if (!(stageObject == null) && !(stageObject == brain.owner))
			{
				ColliderRecord colliderRecord = RecordCollider(collider, stageObject, component);
				if (colliderRecord.isMove)
				{
					brain.HandleEvent(BRAIN_EVENT.BULLET_CATCH, component);
				}
				else
				{
					brain.HandleEvent(BRAIN_EVENT.COLLIDER_CATCH, stageObject);
				}
			}
		}
	}
예제 #2
0
	private ColliderRecord RecordCollider(Collider collider, StageObject obj, BulletObject bullet)
	{
		//IL_0048: Unknown result type (might be due to invalid IL or missing references)
		//IL_004d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0052: Unknown result type (might be due to invalid IL or missing references)
		//IL_0059: Unknown result type (might be due to invalid IL or missing references)
		//IL_005e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0063: Unknown result type (might be due to invalid IL or missing references)
		//IL_0075: Unknown result type (might be due to invalid IL or missing references)
		//IL_0133: Unknown result type (might be due to invalid IL or missing references)
		//IL_0143: Unknown result type (might be due to invalid IL or missing references)
		//IL_014f: Expected O, but got Unknown
		//IL_014f: Expected O, but got Unknown
		ColliderRecord colliderRecord = null;
		if (records.Count >= 20)
		{
			colliderRecord = records.Last.Value;
			records.RemoveLast();
		}
		else
		{
			colliderRecord = new ColliderRecord();
		}
		colliderRecord.time = Time.get_time();
		colliderRecord.pos = collider.get_transform().get_position();
		colliderRecord.forward = collider.get_transform().get_forward();
		colliderRecord.angle = AIUtility.GetAngle360OfTargetPos(brain.owner, colliderRecord.pos);
		colliderRecord.radius = 1f;
		if (collider is SphereCollider)
		{
			colliderRecord.radius = (collider as SphereCollider).get_radius();
		}
		else if (collider is CapsuleCollider)
		{
			CapsuleCollider val = collider as CapsuleCollider;
			colliderRecord.radius = Mathf.Max(val.get_radius(), val.get_height());
		}
		colliderRecord.isDash = false;
		Enemy enemy = obj as Enemy;
		if (enemy != null)
		{
			colliderRecord.isDash = enemy.enableDash;
		}
		colliderRecord.isBullet = (bullet != null);
		colliderRecord.isWillHit = false;
		if (colliderRecord.isMove)
		{
			nearMoveTime = colliderRecord.time;
			int opponentMask = AIUtility.GetOpponentMask(obj);
			colliderRecord.isWillHit = AIUtility.IsHitObjectFromMoveObject(collider.get_transform(), brain.owner.get_transform(), colliderRecord.radius, opponentMask);
			if (colliderRecord.isWillHit)
			{
				if (colliderRecord.isDash)
				{
					nearWillDashHitTime = colliderRecord.time;
				}
				if (colliderRecord.isBullet)
				{
					nearWillBulletHitTime = colliderRecord.time;
				}
			}
		}
		records.AddFirst(colliderRecord);
		return colliderRecord;
	}