using System.Collections; using System.Collections.Generic; using UnityEngine; public class IDesignMobile : UIInputDesignUnit { /// 板片资产 public ModuleAssets AssetsPlate => ModuleCore.AssetsPlate; /// 查询点算法模块 public ModuleAlgorithm AlgorithmFindPoint => ModuleCore.AlgorithmFindPoint; /// 广播查询数据模块 public ModuleSending SendingFindPoint => ModuleCore.SendingFindPoint; private Vector3 mousePosition; private Vector3 originalPosition; private DataFindPoint findPoint; private void FindPoint(Vector3 localPosition) { findPoint = new DataFindPoint(); findPoint.position = localPosition; findPoint.datas = AssetsPlate.Datas; AlgorithmFindPoint.Compute(findPoint); } public override void MouseDown(DataUIMouseInput data) { FindPoint(data.WorldPosition); SendingFindPoint.Change(findPoint); if (findPoint.IsValidPoint) { RecordPoint(data.ScreenPosition); return; } if (findPoint.IsValidPlate) { RecordPlate(data.ScreenPosition); return; } RecordCamera(data.ScreenPosition); } public override void MouseDrag(DataUIMouseInput data) { Vector3 original = ViewCamera.ScreenToWorldPosition(mousePosition); Vector3 current = data.WorldPosition; Vector3 offset = current - original; if (findPoint.IsValidPoint) { MobilePoint(offset); return; } if (findPoint.IsValidPlate) { MobilePlate(offset); return; } MobileCamera(offset); } private void RecordPoint(Vector3 screenPosition) { mousePosition = screenPosition; originalPosition = findPoint.point.position; } private void MobilePoint(Vector3 offset) { findPoint.point.position = originalPosition + offset; findPoint.plate.UpdateVisual(); } private void RecordPlate(Vector3 screenPosition) { mousePosition = screenPosition; originalPosition = findPoint.plate.position; } private void MobilePlate(Vector3 offset) { findPoint.plate.position = originalPosition + offset; findPoint.plate.UpdateVisual(); } private void RecordCamera(Vector3 screenPosition) { mousePosition = screenPosition; originalPosition = ViewCamera.position; } private void MobileCamera(Vector3 offset) { ViewCamera.position = originalPosition - offset; } }