示例#1
0
 // Use this for initialization
 void Start()
 {
     instance            = this;
     speed               = init_speed;
     anim                = this.GetComponent <Animator>();
     characterController = GetComponent <CharacterController>();
     standPosition       = Position.Middle;
     sideOnRunning       = SideOnRunning.Side1;
     StartCoroutine(UpdateAction());
 }
示例#2
0
    public void Reset()
    {
        Debug.Log("reset");
        speed          = init_speed = 1;
        inputDirection = InputDirection.NULL;
        activeInput    = false;

        //left & right
        standPosition      = Position.Middle;
        LeftRightDirection = Vector3.zero;
        moveDirection      = Vector3.zero;
        //sideOnRunning
        sideOnRunning = SideOnRunning.Side1;
        transform.localEulerAngles = new Vector3(0, 0, 0);
        //jump & roll
        isJumping = false;
        isRolling = false;
        //speed up
        quickMoveTimeLeft = 0;
        isQuickMoving     = false;
        //magnet
        magnetTimeLeft = 0;
        //multiply
        multiplyTimeLeft = 0;
        //add speed
        speedAddCount = 0;
        //life
        life = 1;

        gameObject.transform.position  = new Vector3(574f, 91.66f, -560f);
        Camera.main.transform.position = new Vector3(574f, 156.16f, -525.5f);
        anim.SetBool("isRunning", true);
        RoadSetter.instance.RemoveItem(RoadSetter.instance.Side1);
        RoadSetter.instance.RemoveItem(RoadSetter.instance.Side2);
        RoadSetter.instance.RemoveItem(RoadSetter.instance.Side3);
        RoadSetter.instance.RemoveItem(RoadSetter.instance.Side4);
        RoadSetter.instance.AddItem(RoadSetter.instance.Side1);
    }
示例#3
0
    void MoveForward()
    {
        //Debug.Log(transform.position);
        if (inputDirection == InputDirection.Down)
        {
            anim.SetTrigger("isRolling");
        }
        if (inputDirection == InputDirection.Up)
        {
            anim.SetTrigger("isJumping");
        }

        AnimatorStateInfo animatorInfo;

        animatorInfo = anim.GetCurrentAnimatorStateInfo(0);
        if ((animatorInfo.normalizedTime < 1.0f) && (animatorInfo.IsName("Jumping")))
        {
            isJumping = true;
        }
        else
        {
            isJumping = false;
        }

        if ((animatorInfo.normalizedTime < 1.0f) && (animatorInfo.IsName("Rolling")))
        {
            isRolling = true;
        }
        else
        {
            isRolling = false;
        }

        anim.SetBool("isRunning", true);

        //turn left if necessary
        if (sideOnRunning == SideOnRunning.Side1)
        {
            moveDirection.z  = speed;
            moveDirection.y -= gravity * Time.deltaTime;

            if (transform.position.z >= 610.0f)
            {
                transform.localEulerAngles = new Vector3(0, -90, 0);
                sideOnRunning = SideOnRunning.Side2;
            }

            if (standPosition == Position.Middle)
            {
                Vector3 pos = transform.position;
                pos.x = Mathf.Lerp(pos.x, 574.0f, Time.deltaTime * 10);
                pos.y = Mathf.Lerp(pos.y, 91.66f, Time.deltaTime * 10);
                pos.z = transform.position.z;
                transform.position = pos;
                //transform.position = new Vector3(574.0f, transform.position.y, transform.position.z);
            }
            else if (standPosition == Position.Left)
            {
                Vector3 pos = transform.position;
                pos.x = Mathf.Lerp(pos.x, 554.0f, Time.deltaTime * 10);
                pos.y = Mathf.Lerp(pos.y, 91.66f, Time.deltaTime * 10);
                pos.z = transform.position.z;
                transform.position = pos;
                //transform.position = new Vector3(554.0f, transform.position.y, transform.position.z);
            }
            else if (standPosition == Position.Right)
            {
                Vector3 pos = transform.position;
                pos.x = Mathf.Lerp(pos.x, 594.0f, Time.deltaTime * 10);
                pos.y = Mathf.Lerp(pos.y, 91.66f, Time.deltaTime * 10);
                pos.z = transform.position.z;
                transform.position = pos;
                //transform.position = new Vector3(594.0f, transform.position.y, transform.position.z);
            }
        }
        else if (sideOnRunning == SideOnRunning.Side2)
        {
            moveDirection.x = -speed;

            if (transform.position.x <= -548.0f)
            {
                transform.localEulerAngles = new Vector3(0, -180, 0);
                sideOnRunning = SideOnRunning.Side3;
            }
            if (standPosition == Position.Middle)
            {
                Vector3 pos = transform.position;
                pos.x = transform.position.x;
                pos.y = Mathf.Lerp(pos.y, 91.66f, Time.deltaTime * 10);
                pos.z = Mathf.Lerp(pos.z, 629.0f, Time.deltaTime * 10);
                transform.position = pos;
                //transform.position = new Vector3(transform.position.x, transform.position.y, 629.0f);
            }
            else if (standPosition == Position.Left)
            {
                Vector3 pos = transform.position;
                pos.x = transform.position.x;
                pos.y = Mathf.Lerp(pos.y, 91.66f, Time.deltaTime * 10);
                pos.z = Mathf.Lerp(pos.z, 609.0f, Time.deltaTime * 10);
                transform.position = pos;
                //transform.position = new Vector3(transform.position.x, transform.position.y, 609.0f);
            }
            else if (standPosition == Position.Right)
            {
                Vector3 pos = transform.position;
                pos.x = transform.position.x;
                pos.y = Mathf.Lerp(pos.y, 91.66f, Time.deltaTime * 10);
                pos.z = Mathf.Lerp(pos.z, 649.0f, Time.deltaTime * 10);
                transform.position = pos;
                //transform.position = new Vector3(transform.position.x, transform.position.y, 649.0f);
            }
        }
        else if (sideOnRunning == SideOnRunning.Side3)
        {
            moveDirection.z = -speed;

            if (transform.position.z <= -552.0f)
            {
                transform.localEulerAngles = new Vector3(0, 90, 0);
                sideOnRunning = SideOnRunning.Side4;
            }
            if (standPosition == Position.Middle)
            {
                Vector3 pos = transform.position;
                pos.x = Mathf.Lerp(pos.x, -567.0f, Time.deltaTime * 10);
                pos.y = Mathf.Lerp(pos.y, 91.66f, Time.deltaTime * 10);
                pos.z = transform.position.z;
                transform.position = pos;
                //pos.z = Mathf.Lerp(pos.z, target.transform.position.z - distance, Time.deltaTime * 50);

                //transform.position = new Vector3(-567.0f, transform.position.y, transform.position.z);
            }
            else if (standPosition == Position.Left)
            {
                Vector3 pos = transform.position;
                pos.x = Mathf.Lerp(pos.x, -547.0f, Time.deltaTime * 10);
                pos.y = Mathf.Lerp(pos.y, 91.66f, Time.deltaTime * 10);
                pos.z = transform.position.z;
                transform.position = pos;
                //transform.position = new Vector3(-547.0f, transform.position.y, transform.position.z);
            }
            else if (standPosition == Position.Right)
            {
                Vector3 pos = transform.position;
                pos.x = Mathf.Lerp(pos.x, -587.0f, Time.deltaTime * 10);
                pos.y = Mathf.Lerp(pos.y, 91.66f, Time.deltaTime * 10);
                pos.z = transform.position.z;
                transform.position = pos;
                //transform.position = new Vector3(-587.0f, transform.position.y, transform.position.z);
            }
        }
        else if (sideOnRunning == SideOnRunning.Side4)
        {
            moveDirection.x = speed;

            if (transform.position.x >= 555.0f)
            {
                transform.localEulerAngles = new Vector3(0, 0, 0);
                sideOnRunning = SideOnRunning.Side1;
            }
            if (standPosition == Position.Middle)
            {
                Vector3 pos = transform.position;
                pos.x = transform.position.x;
                pos.y = Mathf.Lerp(pos.y, 91.66f, Time.deltaTime * 10);
                pos.z = Mathf.Lerp(pos.z, -571.0f, Time.deltaTime * 10);
                transform.position = pos;
                //transform.position = new Vector3(transform.position.x, transform.position.y, -571.0f);
            }
            else if (standPosition == Position.Left)
            {
                Vector3 pos = transform.position;
                pos.x = transform.position.x;
                pos.y = Mathf.Lerp(pos.y, 91.66f, Time.deltaTime * 10);
                pos.z = Mathf.Lerp(pos.z, -551.0f, Time.deltaTime * 10);
                transform.position = pos;
                //transform.position = new Vector3(transform.position.x, transform.position.y, -551.0f);
            }
            else if (standPosition == Position.Right)
            {
                Vector3 pos = transform.position;
                pos.x = transform.position.x;
                pos.y = Mathf.Lerp(pos.y, 91.66f, Time.deltaTime * 10);
                pos.z = Mathf.Lerp(pos.z, -591.0f, Time.deltaTime * 10);
                transform.position = pos;
                //transform.position = new Vector3(transform.position.x, transform.position.y, -591.0f);
            }
        }
        characterController.Move((LeftRightDirection * 50 + moveDirection) * Time.deltaTime);
    }