Ejemplo n.º 1
0
 protected override void _Start()
 {
     data  = new Item(transform.Find("Content/Data"));
     begin = new Item(transform.Find("Content/DataBegin"));
     end   = new Item(transform.Find("Content/DataEnd"));
     inputFieldDuration = transform.Find("Content/DataTime/InputField").GetComponent <InputField>();
     inputFieldName     = transform.Find("Content/Name/InputField").GetComponent <InputField>();
     buttonPlay         = transform.Find("Content/ButtonPlay").GetComponent <Button>();
     toggleAbsolute     = transform.Find("Content/ToggleGroup/ToggleAbsolute").GetComponent <Toggle>();
     toggleRelative     = transform.Find("Content/ToggleGroup/ToggleRelative").GetComponent <Toggle>();
     #region listener
     data.Position.AddValueChangedListener(delegate
     {
         if (data.Target == null)
         {
             return;
         }
         data.Target.localPosition = data.Position.Data;
         Coordinate.Target.SetTarget(data.Target);
         begin.UpdatePosition();
         end.UpdatePosition();
     });
     data.Rotation.AddValueChangedListener(delegate
     {
         if (data.Target == null)
         {
             return;
         }
         data.Target.localEulerAngles = data.Rotation.Data;
         Coordinate.Target.SetTarget(data.Target);
         begin.UpdateRotation();
         end.UpdateRotation();
     });
     data.Rotation.AddEndEditListener(delegate
     {
         if (data.Target == null)
         {
             return;
         }
         data.UpdateRotation();
     });
     data.Scale.AddValueChangedListener(delegate
     {
         if (data.Target == null)
         {
             return;
         }
         data.Target.localScale = data.Scale.Data;
         Coordinate.Target.SetTarget(data.Target);
         begin.UpdateScale();
         end.UpdateScale();
     });
     transform.Find("Content/ButtonSave").GetComponent <Button>().onClick.AddListener(Save);
     buttonPlay.onClick.AddListener(delegate
     {
         if (!(begin.IsLock && end.IsLock))
         {
             PanelDialog.current.Open("请先锁定");
             return;
         }
         AnimData animData       = GetAnimData();
         buttonPlay.interactable = false;
         Action <float> action   = animData.Lerp(begin.Target, PanelAnim.current.openTransformGroup);
         PoolOfAnim.current.AddItem(animData.Duration, f =>
         {
             action(f);
             Coordinate.Target.SetTarget(begin.Target);
             data.UpdatePosition();
             data.UpdateRotation();
             data.UpdateScale();
         }, () =>
         {
             buttonPlay.interactable = true;
         });
     });
     toggleAbsolute.onValueChanged.AddListener(isOn =>
     {
         if (isOn)
         {
             isRelative       = false;
             begin.IsRelative = isRelative;
             end.IsRelative   = isRelative;
         }
     });
     toggleRelative.onValueChanged.AddListener(isOn =>
     {
         if (isOn)
         {
             isRelative       = true;
             begin.IsRelative = isRelative;
             end.IsRelative   = isRelative;
         }
     });
     #endregion
 }