protected override float GetTimeForRatio(float ratio) { return(particleModel.GetTimeForRatio(ratio)); }
public void OnInitialize() { try { if (studio.view.rotationType == RotationType.Model) { CameraHelper.LocateMainCameraToModel(model, studio); } if (studio.shadow.type == ShadowType.TopDown) { ObjectHelper.DeleteObject(EditorGlobal.DYNAMIC_SHADOW_NAME); studio.shadow.obj = ObjectHelper.GetOrCreateObject(EditorGlobal.STATIC_SHADOW_NAME, EditorGlobal.SHADOW_FOLDER_NAME, Vector3.zero); ShadowHelper.LocateShadowToModel(model, studio); Camera camera; GameObject fieldObj; ShadowHelper.GetCameraAndFieldObject(studio.shadow.obj, out camera, out fieldObj); CameraHelper.LookAtModel(camera.transform, model); ShadowHelper.ScaleShadowField(camera, fieldObj); } else { ShadowHelper.LocateShadowToModel(model, studio); } particleModel.Animate(Frame.BEGIN); // important for particle simulation if (particleModel.selectedFrames.Count > 0) { frames = new Frame[particleModel.selectedFrames.Count]; particleModel.selectedFrames.CopyTo(frames); } else { frames = new Frame[studio.frame.size]; for (int i = 0; i < studio.frame.size; ++i) { float frameRatio = 0.0f; if (i > 0 && i < studio.frame.size) { frameRatio = (float)i / (float)(studio.frame.size - 1); } float time = particleModel.GetTimeForRatio(frameRatio); frames[i] = new Frame(i, time); } } fileBaseName = BuildFileBaseName(); BuildFolderPathAndCreate(modelName); if (studio.packing.on && studio.output.animatorControllerMake) { BuildAnimatorController(); } viewIndex = 0; stateMachine.ChangeState(BakingState.BeginView); } catch (Exception e) { Debug.LogException(e); Finish(); } }