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);
        }
Exemple #2
0
        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();
            }
        }
Exemple #3
0
        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()
     {
     });
 }
Exemple #5
0
        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);
        }