/// <summary> /// キーフレームグループのデータをクリアする /// </summary> protected virtual void ClearTempKeyFrameData() { for (int i = 0; i < AllKeyFrameObjectList.Count; i++) { Destroy(AllKeyFrameObjectList[i].gameObject); AllKeyFrameObjectList[i] = null; } AllKeyFrameObjectList.Clear(); Data = new KeyFrameDataSegment(Target); }
/// <summary> /// 生成直後の処理 /// </summary> protected virtual void Awake() { Data = new KeyFrameDataSegment(Target); _registerButton.onClick.AddListener(() => { if (ToggleGroup.AnyTogglesOn()) { UnregisterKeyFrameData(ToggleGroup.ActiveToggles().First().GetComponentInParent <KeyFrameObject>()); } else { RegisterKeyFrameData(); } }); }
/// <summary> /// データを渡して反映する /// 編集中のデータは破棄する /// </summary> public virtual void ApplyKeyFrameData(KeyFrameDataSegment segment) { ClearTempKeyFrameData(); foreach (var frame in segment.AllKeyFrameData) { // 生成 KeyFrameObject obj = KeyFrameObject.CreateKeyFrameObject(Target, KeyFrameObjectRoot); obj.transform.position = KeyFrameObjectRoot.position; // スライダーの部分のサイズ変更に対応できるように、スライダーの幅*設定時間(0~1)で座標を設定 obj.transform.SetLocalPositionX(TimeSliderRef.handleRect.parent.GetComponent <RectTransform>().rect.width *frame.SettingTime); // トグル登録 ToggleGroup.RegisterToggle(obj.ToggleButton); obj.ToggleButton.group = ToggleGroup; // データ登録 obj.Data.SettingTime = frame.SettingTime; Data.AllKeyFrameData.Add(obj.Data); AllKeyFrameObjectList.Add(obj); } ToggleGroup.SetAllTogglesOff(); }