using AibisDream; using UnityEngine; using System; using AibisDream.Kit; public class Socket : MonoBehaviour, ISocket { public bool IsAvailable { get; set; } = true; public Vector2 InsertionPoint => transform.position; [HideInInspector] public Plug plug=null; private YarnOption _option; private bool waitYarnCommand = false; public bool WaitYarnCommand { get { return waitYarnCommand; } } public bool notAlowedDeep = false; [HideInInspector] public TargetPointData targetData; // 新增属性 public YarnOption Option { set => _option = value; } public void Start() { targetData = transform.GetComponent(); } public void Update() { if (plug != null) { plug.transform.position = transform.position; } } public void InsertPlug(Plug p) { if (IsAvailable) { IsAvailable = false; } AudioManager.Instance.PlaySfx("event:/FollowInput/plugin"); plug = p; plug.CableRef.End = plug.transform; // 可插入就可以触发对话 } public void RemovePlug(Plug p) { IsAvailable = true; AudioManager.Instance.PlaySfx("event:/FollowInput/plugout"); if (plug != null) { plug.CableRef.End = plug.transform.GetChild(0).transform; plug.currentSocket = null; plug = null; } } public Vector2 GetPosition() { return transform.position; } }