private void InnerUpdate() { if (Input.GetKey(KeyCode.LeftControl) && Input.GetMouseButtonDown(0)) { var minDist = double.MaxValue; FkBone.FkBone minBone = null; FkCharaMgr.FindSelectCharas().Foreach(c => { c.Bones().Foreach(b => { var screenPoint = CameraMgr.MainCamera().WorldToScreenPoint(b.Transform.position); var dist = (screenPoint - Input.mousePosition).magnitude; if (dist < minDist) { minDist = dist; minBone = b; } }); }); if (minBone != null) { Context.GuideObjectManager().SetSelectObject(minBone.GuideObject, false); } } }
private void AttachSelectorMarker() { var chars = FkCharaMgr.FindSelectCharas(); chars.Foreach(c => { c.Bones().Foreach(b => { var marker = BoneMarker.Create(b.Transform); marker.SetColor(_selectorColor); _selectorMarkers.Add(marker); marker.OnLeftClick = (m) => { var attach = new AttachRecord(); attach.Leader = b; attach.Follower = _follower; attach.Pos = attach.Follower.Transform.position - attach.Leader.Transform.position; _attachRecords.Add(attach); ClearSelectorMarker(); EnableLimbMarker(); }; }); }); }