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

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

public SLIDE ( object args ) : void
args object
Результат void
    public void SLIDE(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);
                if (args.Length > 2) {
                    eventManager.InsertEvent (eventManager.evalOrig [string.Format ("slide({0},{1})", (args [0] as GameObject).name, Helper.VectorToParsable ((Vector3)args [1]))], 1);
                }
                else {
                    eventManager.InsertEvent (eventManager.evalOrig [string.Format ("slide({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);
                    if (args.Length > 2) {
                        eventManager.InsertEvent (eventManager.evalOrig [string.Format ("slide({0},{1})", (args [0] as GameObject).name, Helper.VectorToParsable ((Vector3)args [1]))], 1);
                    }
                    else {
                        eventManager.InsertEvent (eventManager.evalOrig [string.Format ("slide({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;

        Helper.PrintRDFTriples (rdfTriples);

        string prep = rdfTriples.Count > 0 ? rdfTriples [0].Item2.Replace ("slide", "") : "";

        if (args [0] is GameObject) {
            GameObject obj = (args [0] as GameObject);
            Voxeme voxComponent = obj.GetComponent<Voxeme> ();
            if (voxComponent != null) {
                if (!voxComponent.enabled) {
                    voxComponent.gameObject.transform.parent = null;
                    voxComponent.enabled = true;
                }

                if (args [1] is Vector3) {
                    targetPosition  = (Vector3)args [1];
                }
                else {
                    targetPosition = new Vector3 (obj.transform.position.x + UnityEngine.Random.insideUnitSphere.x,
                        obj.transform.position.y, obj.transform.position.z + UnityEngine.Random.insideUnitSphere.z);
                }

                voxComponent.targetPosition = targetPosition;
            }
        }

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

        return;
    }