protected void CheckToggleOnlyOneSelected(int idx) { KeyFrameBase keyFrame = keyFrameBaseList.ElementAt <KeyFrameBase>(idx); if (keyFrame.isSelected) { if (currSelectedKeyFrameIdx != idx) { SetCurrTime(keyFrame.time); Refresh(); //SceneView.RepaintAll(); for (int i = 0; i < keyFrameBaseList.Count <KeyFrameBase>(); i++) { if (i != idx) { keyFrameBaseList.ElementAt <KeyFrameBase>(i).isSelected = false; } } currSelectedKeyFrameIdx = idx; } } else { if (currSelectedKeyFrameIdx == idx) { currSelectedKeyFrameIdx = -1; } } }
bool IsOnSelectedKeyFrame() { if (currSelectedKeyFrameIdx == -1) { return(false); } KeyFrameBase keyFrame = keyFrameBaseList.ElementAt <KeyFrameBase>(currSelectedKeyFrameIdx); if (keyFrame.isSelected && keyFrame.time == GetCurrTime()) { return(true); } return(false); }
protected virtual void KeyFrameSort() { //keyFrameBaseList = keyFrameBaseList.OrderBy(x => x.time); for (int i = 0; i < keyFrameBaseList.Count <KeyFrameBase>(); i++) { KeyFrameBase keyFrame = keyFrameBaseList.ElementAt <KeyFrameBase>(i); if (keyFrame.isSelected) { currSelectedKeyFrameIdx = i; SetCurrTime(keyFrame.time); GUI.FocusControl(keyFramefocusName + i.ToString()); break; } } }
void CheckKeyFrameTimeUnique(int idx) { KeyFrameBase keyFrame = keyFrameBaseList.ElementAt <KeyFrameBase> (idx); for (int j = 0; j < keyFrameBaseList.Count <KeyFrameBase> (); j++) { if (idx == j) { continue; } KeyFrameBase compareKeyFrame = keyFrameBaseList.ElementAt <KeyFrameBase> (j); if (keyFrame.time == compareKeyFrame.time) { keyFrame.time += 0.0333f; j = -1; } } }
protected virtual void UpdateInEditorMode() { GoGoComponent gogoComponent = (GoGoComponent)target; GoGoPlayer gogoPlayer = gogoComponent.gogoPlayer; if (EditorApplication.isPlaying || gogoPlayer == null || gogoComponent == null || !gogoComponent.enabled) { return; } //! 同一個gameobject只能有一個GoGoComponent Enable. //! 不然SceneView視窗拖拉物件會卡住. ModifyComponentEnable(); if (IsOnSelectedKeyFrame()) { //! 當KeyFrame數值有變時,重新設定數值. KeyFrameBase keyFrame = keyFrameBaseList.ElementAt <KeyFrameBase>(currSelectedKeyFrameIdx); if (keyFrame.isChange) { Refresh(); keyFrame.isChange = false; } else if (GetCurrTime() != lastTime) { Refresh(); } else { AsignDataToKeyFrame(); } } else { Refresh(); } lastTime = GetCurrTime(); }