Beispiel #1
0
    protected override void OnExecute()
    {
        switch (direction.value)
        {
        case "left":
            cGetter         = (child) => - child.localPosition.x;
            directionOffset = new Vector3(-1, 0, 0);
            tRot            = new Vector3(0f, 0f, 90f);
            tChildOffset    = new Vector3(0f, -1f, 0f);
            break;

        case "right":
            cGetter         = (child) => child.localPosition.x;
            directionOffset = new Vector3(0, 0, 0);
            tRot            = new Vector3(0f, 0f, -90f);
            tChildOffset    = new Vector3(1f, 0f, 0f);
            break;

        case "forward":
            cGetter         = (child) => child.localPosition.z;
            directionOffset = new Vector3(0, 0, 1);
            tRot            = new Vector3(90f, 0f, 0f);
            tChildOffset    = new Vector3(0f, -1f, 0f);
            break;

        default:
            cGetter         = (child) => - child.localPosition.z;
            directionOffset = new Vector3(0, 0, 0);
            tRot            = new Vector3(-90f, 0f, 0f);
            tChildOffset    = new Vector3(0f, 0f, -1f);
            break;
        }

        edgeChildPos = getEdgeChildPos();

        updateChildrenPositions();

        agent.transform.localPosition += edgeChildPos + directionOffset;

        Move();
    }
Beispiel #2
0
    protected override void OnExecute()
    {
        switch (direction.value) {
            case "left":
                cGetter = (child) => -child.localPosition.x;
                directionOffset = new Vector3(-1, 0, 0);
                tRot = new Vector3(0f, 0f, 90f);
                tChildOffset = new Vector3(0f, -1f, 0f);
                break;

            case "right":
                cGetter = (child) => child.localPosition.x;
                directionOffset = new Vector3(0, 0, 0);
                tRot = new Vector3(0f, 0f, -90f);
                tChildOffset = new Vector3(1f, 0f, 0f);
                break;

            case "forward":
                cGetter = (child) => child.localPosition.z;
                directionOffset = new Vector3(0, 0, 1);
                tRot = new Vector3(90f, 0f, 0f);
                tChildOffset = new Vector3(0f, -1f, 0f);
                break;

            default:
                cGetter = (child) => -child.localPosition.z;
                directionOffset = new Vector3(0, 0, 0);
                tRot = new Vector3(-90f, 0f, 0f);
                tChildOffset = new Vector3(0f, 0f, -1f);
                break;
        }

        edgeChildPos = getEdgeChildPos();

        updateChildrenPositions();

        agent.transform.localPosition += edgeChildPos + directionOffset;

        Move();
    }