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()); } } }