private void StartModelRunwayWalk(FashionModel fashionModel) { IScheduler scheduler = GameFacade.Instance.RetrieveMediator <SchedulerMediator>().Scheduler; fashionModel.UnityGameObject.SetActiveRecursively(true); fashionModel.UnityGameObject.transform.position = mLoadingPosition.position; fashionModel.UnityGameObject.transform.rotation = mLoadingPosition.rotation; fashionModel.Nametag.Showing = true; Animation animationComponent = fashionModel.UnityGameObject.GetComponentInChildren(typeof(Animation)) as Animation; SkinnedMeshRenderer skinnedMeshRenderer = fashionModel.UnityGameObject.GetComponentInChildren(typeof(SkinnedMeshRenderer)) as SkinnedMeshRenderer; skinnedMeshRenderer.updateWhenOffscreen = true; if (animationComponent != null) { animationComponent.AddClip(mRunwayWalkClip, mRunwayWalkClip.name); animationComponent.Play(mRunwayWalkClip.name); } FashionModel model = fashionModel; ITask activeFashionModelTask = scheduler.StartCoroutine(CleanUpModelAfterRunwayWalk(model)); if (mFashionModels.Count > 1) { activeFashionModelTask.AddOnExitAction(delegate() { CleanUpModel(model.UnityGameObject); fashionModel.Nametag.Showing = false; }); } mActiveModelTasks.Add(activeFashionModelTask); }
public virtual void ModelArrived(FashionModel model) { if (mModelAtThisStation == null) { if (this.RequiresWorker) { Worker.PlayWorkingAnimation(); } PlayActivationSound(); mModelAtThisStation = model; if (mWaitThenContinue != null) { mWaitThenContinue.Exit(); } mWaitThenContinue = mScheduler.StartCoroutine(WaitThenContinue(model, WaitTime)); mWaitThenContinue.AddOnExitAction(delegate() { model.Clickable = true; model.WalkToCenter(); mModelAtThisStation = null; this.HideProgressGui(); }); } else { model.WalkToCenter(); } }
public ITask ApplyChangesOverFrames(int frames, Hangout.Shared.Action onTextureFlattenComplete) { IScheduler scheduler = GameFacade.Instance.RetrieveMediator <SchedulerMediator>().Scheduler; mFlattenLayersTask = scheduler.StartCoroutine(mTexturePalette.FlattenLayersOverFramesCoroutine(frames)); mFlattenLayersTask.AddOnExitAction(onTextureFlattenComplete); return(mFlattenLayersTask); }
private void UpdateAssetsOverFrames(int frames) { mUpdatingBodyTask = BodyTexture.ApplyChangesOverFrames(frames, ApplyMeshChanges); mUpdatingBodyTask.AddOnExitAction(delegate() { mFaceRenderer.enabled = true; mAssetsBeingUpdatedOverFrames.Clear(); if (mFinishedUpdatingCallback != null) { mFinishedUpdatingCallback(); mFinishedUpdatingCallback = null; } }); mUpdatingFaceTask = mFaceTexture.ApplyChangesOverFrames(frames, delegate() { }); }
public void ShowChat(Texture2D texture, Camera camera, IGuiManager guiManager) { if (mDisposed) { throw new Exception("Trying to ShowChat after the AvatarDistributedObject has been disposed."); } if (mTextBubbleShowTask != null) { mTextBubbleShowTask.Exit(); } // Hide nametag while chat is showing AvatarEntity.Nametag.Visible = false; IScheduler scheduler = GameFacade.Instance.RetrieveMediator <SchedulerMediator>().Scheduler; mTextBubbleShowTask = scheduler.StartCoroutine(SpawnTextBubble(texture, camera, guiManager)); mTextBubbleShowTask.AddOnExitAction(CleanupTextBubble); }