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);
         }
     }
 }
Beispiel #2
0
        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();
                    };
                });
            });
        }