/// <summary> /// Changes the displayed values for each field. /// </summary> /// <param name="values">Values to assign to the fields. Must match the number of displayed fields. </param> public void SetDisplayValues(GUIAnimFieldPathValue[] values) { for (int i = 0; i < fields.Length; i++) { string path = fields[i].Path; for (int j = 0; j < values.Length; j++) { if(path == values[j].path) fields[i].SetValue(values[j].value); } } }
/// <summary> /// Changes the currently selected frame in the curve display. /// </summary> /// <param name="frameIdx">Index of the frame to select.</param> private void SetCurrentFrame(int frameIdx) { currentFrameIdx = Math.Max(0, frameIdx); frameInputField.Value = currentFrameIdx; guiCurveEditor.SetMarkedFrame(currentFrameIdx); float time = guiCurveEditor.GetTimeForFrame(currentFrameIdx); List<GUIAnimFieldPathValue> values = new List<GUIAnimFieldPathValue>(); foreach (var kvp in clipInfo.curves) { GUIAnimFieldPathValue fieldValue = new GUIAnimFieldPathValue(); fieldValue.path = kvp.Key; switch (kvp.Value.type) { case SerializableProperty.FieldType.Vector2: { Vector2 value = new Vector2(); for (int i = 0; i < 2; i++) value[i] = kvp.Value.curveInfos[i].curve.Evaluate(time, false); fieldValue.value = value; } break; case SerializableProperty.FieldType.Vector3: { Vector3 value = new Vector3(); for (int i = 0; i < 3; i++) value[i] = kvp.Value.curveInfos[i].curve.Evaluate(time, false); fieldValue.value = value; } break; case SerializableProperty.FieldType.Vector4: { Vector4 value = new Vector4(); for (int i = 0; i < 4; i++) value[i] = kvp.Value.curveInfos[i].curve.Evaluate(time, false); fieldValue.value = value; } break; case SerializableProperty.FieldType.Color: { Color value = new Color(); for (int i = 0; i < 4; i++) value[i] = kvp.Value.curveInfos[i].curve.Evaluate(time, false); fieldValue.value = value; } break; case SerializableProperty.FieldType.Bool: case SerializableProperty.FieldType.Int: case SerializableProperty.FieldType.Float: fieldValue.value = kvp.Value.curveInfos[0].curve.Evaluate(time, false); ; break; } values.Add(fieldValue); } guiFieldDisplay.SetDisplayValues(values.ToArray()); }
private void SetCurrentFrame(int frameIdx) { currentFrameIdx = Math.Max(0, frameIdx); frameInputField.Value = currentFrameIdx; guiCurveEditor.SetMarkedFrame(currentFrameIdx); float time = guiCurveEditor.GetTimeForFrame(currentFrameIdx); List <GUIAnimFieldPathValue> values = new List <GUIAnimFieldPathValue>(); foreach (var kvp in clipInfo.curves) { GUIAnimFieldPathValue fieldValue = new GUIAnimFieldPathValue(); fieldValue.path = kvp.Key; switch (kvp.Value.type) { case SerializableProperty.FieldType.Vector2: { Vector2 value = new Vector2(); for (int i = 0; i < 2; i++) { value[i] = kvp.Value.curveInfos[i].curve.Evaluate(time, false); } fieldValue.value = value; } break; case SerializableProperty.FieldType.Vector3: { Vector3 value = new Vector3(); for (int i = 0; i < 3; i++) { value[i] = kvp.Value.curveInfos[i].curve.Evaluate(time, false); } fieldValue.value = value; } break; case SerializableProperty.FieldType.Vector4: { Vector4 value = new Vector4(); for (int i = 0; i < 4; i++) { value[i] = kvp.Value.curveInfos[i].curve.Evaluate(time, false); } fieldValue.value = value; } break; case SerializableProperty.FieldType.Color: { Color value = new Color(); for (int i = 0; i < 4; i++) { value[i] = kvp.Value.curveInfos[i].curve.Evaluate(time, false); } fieldValue.value = value; } break; case SerializableProperty.FieldType.Bool: case SerializableProperty.FieldType.Int: case SerializableProperty.FieldType.Float: fieldValue.value = kvp.Value.curveInfos[0].curve.Evaluate(time, false);; break; } values.Add(fieldValue); } guiFieldDisplay.SetDisplayValues(values.ToArray()); }