57 lines
1.3 KiB
C#
57 lines
1.3 KiB
C#
|
|
using Cinemachine;
|
|
using EasyInject.Attributes;
|
|
using UnityEngine;
|
|
/// <summary>
|
|
/// 抽象的设备类
|
|
/// </summary>
|
|
|
|
public abstract class AbstractDevice : MonoBehaviour, IWcsSocketDataHandle, IFollowHelp, IProcessCompleted, IMouseClick
|
|
{
|
|
[Autowired]
|
|
protected EventCompent eventCompent;
|
|
[Autowired]
|
|
protected CameraManage cameraManage;
|
|
[Header("镜头跟随")]
|
|
public Transform follow;
|
|
[Header("镜头看向")]
|
|
public Transform lookAt;
|
|
[Header("镜头偏移")]
|
|
public Vector3 offset;
|
|
|
|
public event IDevice.DataChangeEvent DataChange;
|
|
public event IDevice.DataChangeEvent ErrorMessage;
|
|
|
|
public abstract Transform Transform { get; }
|
|
public abstract string DeviceType { get; }
|
|
public abstract string DeviceCode { get; }
|
|
|
|
Transform IFollowHelp.Follow => follow;
|
|
|
|
Transform IFollowHelp.FookAt => lookAt;
|
|
|
|
public Vector3 Offset => offset;
|
|
|
|
public abstract DeviceData DeviceData { get; }
|
|
|
|
public virtual void MouseSingleClick()
|
|
{
|
|
if (follow && lookAt)
|
|
{
|
|
cameraManage.ShotCut(this);
|
|
}
|
|
}
|
|
public virtual void MouseDoubleClick()
|
|
{
|
|
|
|
}
|
|
|
|
public abstract void ProcessCompleted();
|
|
public virtual void DataHandle(object data, object other = null)
|
|
{
|
|
DataChange?.Invoke(data,other);
|
|
}
|
|
|
|
public abstract T DynamicData<T>();
|
|
}
|