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 }