using UnityEngine; /// /// 仅仅是给射线一个开盒蛇引用的机会,将会直接持有父类的数据,击中任意锚点都会获取到父类的数据 /// public class DataFlowUnitAnchorController :MonoBehaviour, IRaycastHittable { RuntimeBaseNoteData SelfRef=null; /// /// 重写射线命中方法,确保能正确返回引用 /// public RuntimeBaseNoteData OnHitByRay(RaycastHit hit) { // 如果自身没有 SelfRef,尝试从父对象获取 if (SelfRef == null) { Debug.LogError($"当前对象没有数据"); } Debug.Log($"DataFlow锚点被击中了!\n自身引用为{SelfRef}\n碰撞点: {hit.point}, 法线: {hit.normal}\n"); return SelfRef; } /// /// 用于设置数据项目 /// public void SetSelfRef(RuntimeBaseNoteData data) { SelfRef = data; } }