Esempio n. 1
0
 /// <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);
 }
Esempio n. 2
0
    /// <summary>
    /// 生成直後の処理
    /// </summary>
    protected virtual void Awake()
    {
        Data = new KeyFrameDataSegment(Target);

        _registerButton.onClick.AddListener(() =>
        {
            if (ToggleGroup.AnyTogglesOn())
            {
                UnregisterKeyFrameData(ToggleGroup.ActiveToggles().First().GetComponentInParent <KeyFrameObject>());
            }
            else
            {
                RegisterKeyFrameData();
            }
        });
    }
Esempio n. 3
0
    /// <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();
    }