Example #1
0
    private void MoveToCatcher(float speed)
    {
        GameObject catcherObject = EUtils.GetNearestObjectOfType <CatchTrigger>(transform.position);

        if (catcherObject != null)
        {
            Vector3 targetPosition = new Vector3(transform.position.x, transform.position.y, catcherObject.transform.position.z);
            if (transform.position != targetPosition)
            {
                transform.position = Vector3.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
            }
        }
    }
Example #2
0
    //Jupe looks the same as MovementMount.Move but not exactly. Maybe this will be diffrent in the future ? Who knows.
    public void Move(float speed, bool auto = false, bool isHoldingObject = false)
    {
        float diffrenceZ = transform.parent.position.z + (EUtils.GetObjectUnitSize(transform.parent.gameObject).z / 2);//min and max WORLD position.

        // Debug.Log(diffrenceZ + ":" + transform.position.z);
        if (!auto)
        {
            //Just read it. It is to see if the object is out of the moving area!
            if ((transform.position.z < (diffrenceZ + minMaxAddition) && speed > 0) || (transform.position.z > -(diffrenceZ + minMaxAddition) && speed < 0))
            {
                transform.Translate(0, 0, speed * Time.deltaTime);//Moves object forward and backwards.
            }
        }
        else
        {
            //Auto
            if (isHoldingObject)
            {
                MoveToCatcher(speed);
            }
            else
            {
                GameObject nearestObject = EUtils.GetNearestObjectOfType <PickUps>(transform.position);
                if (nearestObject != null)
                {
                    Vector3 targetPosition = new Vector3(transform.position.x, transform.position.y, nearestObject.transform.position.z);
                    if (transform.position != targetPosition)
                    {
                        transform.position = Vector3.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
                    }
                }
                else
                {
                    MoveToCatcher(speed);
                }
            }
        }
    }
Example #3
0
    //Jupe looks the same as MovementRail.Move but not exactly. Maybe this will be diffrent in the future ? Who knows.
    public void Move(float speed, bool auto = false, bool isHoldingObject = false)
    {
        float diffrenceX = transform.parent.position.x + (EUtils.GetObjectUnitSize(transform.parent.gameObject).x / 2);//min and max WORLD position.

        if (!auto)
        {
            //For some reason localposition works better here.
            //Just read it. It is to see if the object is out of the moving area!
            if ((transform.localPosition.x < (diffrenceX + minMaxAddition) && speed > 0) || (transform.localPosition.x > -(diffrenceX + minMaxAddition) && speed < 0))
            {
                transform.Translate(speed * Time.deltaTime, 0, 0);//Move object from left to right...
            }
        }
        else
        {
            //Auto
            if (isHoldingObject)
            {
                MoveToCatcher(speed);
            }
            else
            {
                GameObject nearestObject = EUtils.GetNearestObjectOfType <PickUps>(transform.position);
                if (nearestObject != null)
                {
                    Vector3 targetPosition = new Vector3(nearestObject.transform.position.x, transform.position.y, transform.position.z);
                    if (transform.position != targetPosition)
                    {
                        transform.position = Vector3.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
                    }
                }
                else
                {
                    MoveToCatcher(speed);
                }
            }
        }
    }