Predicates.LIFT C# (CSharp) Метод

LIFT() публичный Метод

public LIFT ( object args ) : void
args object
Результат void
    public void LIFT(object[] args)
    {
        // look for agent
        GameObject agent = GameObject.FindGameObjectWithTag("Agent");
        if (agent != null) {
            // add preconditions
            if (!SatisfactionTest.IsSatisfied (string.Format ("reach({0})", (args [0] as GameObject).name))) {
                eventManager.InsertEvent (string.Format ("reach({0})", (args [0] as GameObject).name), 0);
                eventManager.InsertEvent (string.Format ("grasp({0})", (args [0] as GameObject).name), 1);
                eventManager.InsertEvent (eventManager.evalOrig [string.Format ("lift({0})", (args [0] as GameObject).name)], 1);
                eventManager.RemoveEvent (3);
                return;
            }
            else {
                if (!SatisfactionTest.IsSatisfied (string.Format ("grasp({0})", (args [0] as GameObject).name))) {
                    eventManager.InsertEvent (string.Format ("grasp({0})", (args [0] as GameObject).name), 0);
                    eventManager.InsertEvent (eventManager.evalOrig [string.Format ("lift({0})", (args [0] as GameObject).name)], 1);
                    eventManager.RemoveEvent (2);
                    return;
                }
            }

            // add postconditions
            if (args [args.Length - 1] is bool) {
                if ((bool)args [args.Length - 1] == true) {
                    eventManager.InsertEvent (string.Format ("ungrasp({0})", (args [0] as GameObject).name), 1);
                }
            }
        }

        // override physics rigging
        foreach (object arg in args) {
            if (arg is GameObject) {
                (arg as GameObject).GetComponent<Rigging> ().ActivatePhysics(false);
            }
        }

        Vector3 targetPosition = Vector3.zero;

        if (args [0] is GameObject) {
            GameObject obj = (args [0] as GameObject);
            targetPosition = new Vector3 (obj.transform.position.x,obj.transform.position.y+UnityEngine.Random.value, obj.transform.position.z);
            //Debug.Log (targetPosition);
            //targetPosition = new Vector3 (obj.transform.position.x+1.0f, obj.transform.position.y, obj.transform.position.z);

            Voxeme voxComponent = obj.GetComponent<Voxeme> ();
            if (voxComponent != null) {
                if (!voxComponent.enabled) {
                    voxComponent.gameObject.transform.parent = null;
                    voxComponent.enabled = true;
                }

                voxComponent.targetPosition = targetPosition;
            }
        }

        // add to events manager
        if (args[args.Length-1] is bool) {
            if ((bool)args[args.Length-1] == false) {
                eventManager.events[0] = "lift("+(args [0] as GameObject).name+","+Helper.VectorToParsable(targetPosition)+")";
            }
        }

        return;
    }