using System.Collections; using System.Collections.Generic; using UnityEngine; public class DesignInsert : UnitMouseInput { /// 板片资产 public ModuleAssets AssetsPlate => ModuleCore.AssetsPlate; /// 查询边算法模块 public ModuleFind FindSide => ModuleCore.FindSide; /// 计算位置到边上最近的点 public ModuleAlgorithm AlgorithmSidePoint => ModuleCore.AlgorithmSidePoint; /// 插入点数据转换板片上的点 public ModuleBuilder InsertPointToPoint => ModuleCore.InsertPointToPoint; public override void MouseDown(DataMouseInput data) { if (!FindSide.Find(data.WorldPosition, out DataSide side)) { return; } DataIntersect intersect = new DataIntersect(side, data.WorldPosition); AlgorithmSidePoint.Compute(intersect); if (!intersect.isIntersect) { return; } DataInsertPoint insertPoint = new DataInsertPoint(); insertPoint.position = intersect.intersectPoint - side.plate.designPosition; insertPoint.plate = side.plate; insertPoint.aPoint = side.aPoint; insertPoint.bPoint = side.bPoint; insertPoint.side = side; InsertPointToPoint.To(insertPoint); } }