72 lines
1.5 KiB
C#
72 lines
1.5 KiB
C#
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<TargetPointData>();
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|