namespace Zinnia.Data.Operation.Extraction
{
using System;
using UnityEngine;
using UnityEngine.Events;
using Zinnia.Data.Type;
///
/// Extracts and emits the .
///
public class SurfaceDataCollisionDataExtractor : ValueExtractor
{
///
/// Defines an event with a value.
///
[Serializable]
public class UnityEvent : UnityEvent { }
///
protected override RaycastHit? ExtractValue()
{
if (Source == null || Source.CollisionData.transform == null)
{
return null;
}
return Source.CollisionData;
}
///
protected override bool InvokeResult(RaycastHit? data)
{
return InvokeEvent(data.GetValueOrDefault());
}
}
}