// 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()); }
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); }
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); }