32 lines
1.3 KiB
C#
32 lines
1.3 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class VIUBezierMobile : ModuleViewInputUnit {
|
|
private Vector3 mousePosition;
|
|
private Vector3 originalPosition;
|
|
private readonly ModuleViewCamera viewCamera;
|
|
private ModulePlateDesign PlateDesign => ModuleCore.I.PlateDesign;
|
|
public VIUBezierMobile(ModuleViewCamera viewCamera) {
|
|
this.viewCamera = viewCamera;
|
|
}
|
|
public override void DownMouse(DataMouseInput data) {
|
|
PlateDesign.SelectBezierPoint(data.ScreenPosition);
|
|
if (!PlateDesign.IsValidBezierPoint) { return; }
|
|
mousePosition = viewCamera.ScreenToWorldPosition(data.ScreenPosition);
|
|
originalPosition = PlateDesign.BezierPointPosition;
|
|
}
|
|
public override void DragMouse(DataMouseInput data) {
|
|
if (!PlateDesign.IsValidBezierPoint) { return; }
|
|
Vector3 current = viewCamera.ScreenToWorldPosition(data.ScreenPosition);
|
|
Vector3 offset = current - mousePosition;
|
|
PlateDesign.ChangeBezierPoint(originalPosition + offset);
|
|
}
|
|
public override void ReleaseMouse(DataMouseInput data) {
|
|
PlateDesign.ReleaseBezierPoint();
|
|
}
|
|
public override void ScrollWheel(DataMouseInput data) {
|
|
PlateDesign.ReleaseBezierPoint();
|
|
}
|
|
}
|