Exemplo n.º 1
0
        public override void Update()
        {
            if (Context == null || mCompiler == null)
            {
                // Either an error, or nothing to do.
                return;
            }

            NavmeshBuild build = Context.Build;

            if (!build)
            {
                return;
            }

            if (Context.Build.BuildState == NavmeshBuildState.Invalid &&
                mCompiler != null)
            {
                Logger.PostError("Build has become invalid. Discarded input compile.", Context.Build);
                mCompiler = null;
                return;
            }

            if (!mCompiler.IsFinished)
            {
                mCompiler.Update();
                return;
            }

            if (!mCompiler.HasData)
            {
                Logger.PostError("Input data compile failed.", null);
                mCompiler = null;
            }
            else if (build.HasInputData)
            {
                // Note: Don't apply the changes if it will cause
                // a state transition. It creates GUI control issues.
                ApplyData();
            }
        }
Exemplo n.º 2
0
        public override void Update()
        {
            base.Update();

            if (Context == null || mInputCompile == null)
            {
                return;
            }

            mInputCompile.Update();

            if (!mInputCompile.IsFinished)
            {
                return;
            }

            NavmeshBuild build = Context.Build;

            if (!build)
            {
                return;
            }

            UnityBuildContext mLogger = new UnityBuildContext();

            if (mInputCompile.HasData)
            {
                if (!build.SetInputData(mLogger, mInputCompile.Geometry
                                        , mInputCompile.Info, mInputCompile.Processors, mInputCompile.Connections
                                        , true))
                {
                    mLogger.PostError("Could not apply input data.", build);
                }
            }
            else
            {
                mLogger.PostError("Input compile did not produce anything.", build);
            }

            mInputCompile = null;
        }