void LateUpdate() { if (begun) { Vector3 newPos = new Vector3(player.transform.position.x, transform.position.y, player.transform.position.z); if (Vector3.Distance(transform.position, newPos) > maxDistance) { transform.position = Vector3.Slerp(transform.position, newPos, 0.01f); } else if (Vector3.Distance(transform.position, newPos) < minDistance) { transform.position = Vector3.SlerpUnclamped(newPos, transform.position, 1.005f); } Vector3 anchorPos = RotatePointAroundPivot(transform.position, player.transform.position + new Vector3(0, player.transform.position.y + 4, -2), 5 * Time.deltaTime); if (GroundSinControl.CalculateSinPosition(transform.position) + 2.4f > transform.position.y) { transform.position = Vector3.SlerpUnclamped(anchorPos, transform.position, 0.015f); } else if (Vector3.Angle(Vector3.down, player.transform.position - transform.position) < minAngle) { anchorPos = RotatePointAroundPivot(transform.position, player.transform.position + new Vector3(0, player.transform.position.y, -2), 5 * Time.deltaTime); transform.position = Vector3.Slerp(transform.position, anchorPos, 0.02f); } else if (Vector3.Distance(transform.position, player.transform.position) > 2) { transform.position = Vector3.Slerp(transform.position, anchorPos, 0.01f); } else if (Vector3.Distance(transform.position, player.transform.position) < 1f || player.transform.position.y + verticalOffset > transform.position.y) { transform.position = Vector3.Slerp(anchorPos, transform.position, 0.01f); } transform.LookAt(new Vector3(player.transform.position.x, player.transform.position.y + lookVerticalOffset, player.transform.position.z)); } }
void FixedUpdate() { float moveHorizontal = Input.GetAxis("Horizontal"); float moveVertical = Input.GetAxis("Vertical"); if (moveHorizontal == 0 && moveVertical == 0) { speedCurveTime = 0; } if (speedCurveTime <= 1) { speedCurveTime += speedCurveIncrement; } Vector3 forwardProjection = transform.position + (forwardVector * 2); float hillModifier; if (GroundSinControl.CalculateSinPosition(transform.position) > GroundSinControl.CalculateSinPosition(forwardProjection)) { hillModifier = 1.1f; } else { hillModifier = 0.85f; } forwardVector = Quaternion.AngleAxis(moveHorizontal, Vector3.up) * forwardVector; movement = forwardVector * moveVertical; float currentSpeed = speed * speedCurve.Evaluate(speedCurveTime); jellyMesh.AddForce(movement * currentSpeed * hillModifier, true); // added hillmodifier to here Camera.main.transform.RotateAround(transform.position, Vector3.up, moveHorizontal); }
// Update is called once per frame void Update() { heightAdjust = new Vector3( 0.0f, GroundSinControl.CalculateSinPosition(transform.position), 0.0f); transform.position = position + heightAdjust; }
// Update is called once per frame void Update() { heightAdjust = new Vector3( 0.0f, GroundSinControl.CalculateSinPosition(transform.position), 0.0f); transform.Rotate(new Vector3(45, 15, 30) * Time.deltaTime); transform.position = posOri + heightAdjust; // + new Vector3(0,2.2f,0); }
// public void EelDown(){ // StartCoroutine (EelFall ()); // } IEnumerator EelDance() { for (float t = 0; t <= 1; t += 0.1f * Time.deltaTime) { transform.position = Vector3.Lerp(transform.position, new Vector3(transform.position.x, (GroundSinControl.CalculateSinPosition(transform.position) + 1.5f), transform.position.z), 0.0005f * t); yield return(null); } }
IEnumerator ShellRaise() { for (float t = 0; t <= 1; t += 0.1f * Time.deltaTime) { rb.useGravity = false; transform.position = Vector3.Lerp(transform.position, new Vector3(transform.position.x, GroundSinControl.CalculateSinPosition(transform.position) + 3, transform.position.z), t); hasRisen = true; crashParticle.Stop(); yield return(null); } }
// Update is called once per frame void Update() { heightAdjust = new Vector3( 0.0f, GroundSinControl.CalculateSinPosition(transform.position), 0.0f); transform.RotateAround( posOri, Vector3.forward, 0.1f * Mathf.PI); // rotationCurve.Evaluate (Time.time)); transform.position = posOri + heightAdjust; }
IEnumerator Attack() { Vector3 loomingPos = Vector3.Lerp(transform.position, player.transform.position, 0.6f); Vector3 startPosition = transform.position; loomingPos.y += 1.2f; for (float t = 0; t < 1; t += Time.deltaTime) { transform.LookAt(player.transform); transform.position = Vector3.Lerp(startPosition, loomingPos, t); yield return(null); } while (attacking) { for (float t = 0; t < 3; t += Time.deltaTime) { transform.LookAt(player.transform); loomingPos = player.transform.position + new Vector3(0, 1.2f, 0); Vector3 temp = new Vector3(transform.position.x, loomingPos.y + GroundSinControl.CalculateSinPosition(transform.position) + verticalAttackOffset, transform.position.z); transform.position = Vector3.Lerp(transform.position, temp, 0.1f); transform.RotateAround(loomingPos, Vector3.up, 20 * Time.deltaTime); yield return(null); } transform.LookAt(player.transform); Vector3 divingVector = player.transform.position; divingVector.y = Mathf.Sin(Time.time + attackTime - Mathf.Floor(player.transform.position.x) * 0.2f - Mathf.Floor(player.transform.position.z) * 0.2f) + verticalAttackOffset; Vector3 startPos = transform.position; for (float t = 0; t < attackTime; t += Time.deltaTime) { transform.LookAt(divingVector); transform.position = Vector3.Slerp(startPos, divingVector, t / attackTime); yield return(null); } divingVector = startPos + new Vector3(divingVector.x - startPos.x, startPos.y, divingVector.z); startPos = transform.position; for (float t = 0; t < attackTime; t += Time.deltaTime) { transform.LookAt(divingVector); transform.position = Vector3.Slerp(startPos, divingVector, t / attackTime); //transform.Translate(Vector3.Slerp(divingVector, divingVector * -1, t) * Time.deltaTime); yield return(null); } gameObject.tag = "PredatorStraight"; yield return(new WaitForSeconds(2)); } /*// lerp to player * do { * transform.LookAt (player.transform); * Debug.Log("Attack!"); * Vector3 targetPosition = player.transform.position; * startPosition = transform.position; * //Debug.Log("AttackVector: " + attackVector.ToString()); * Ray heightRay = new Ray(startPosition, Vector3.down * 10); * RaycastHit heightRayHit; * float attackHeight = 0; * if(Physics.Raycast(heightRay, out heightRayHit, 10)) { * attackHeight = heightRayHit.distance; * } * for(float t = 0; t < 1; t += Time.deltaTime) { * transform.position = Vector3.Lerp(startPosition, targetPosition, Mathf.SmoothStep(0, 1, t)); * if(Physics.Raycast(heightRay, out heightRayHit, attackHeight)) { * if(heightRayHit.distance < attackHeight) { * startPosition.y += 1f * Mathf.Clamp(attackHeight / heightRayHit.distance, 0, 1); * heightRay = new Ray(startPosition, Vector3.down * 10); * } * } * else if(Physics.Raycast(new Ray(transform.position, Vector3.down * 10), out heightRayHit, attackHeight)) { * startPosition.y += (0.7f * Mathf.Clamp(attackHeight / heightRayHit.distance, 0, 1) * Time.deltaTime); * heightRay = new Ray(startPosition, Vector3.down * 10); * } * * yield return null; * } * Debug.Log("After attack " + (player.transform.position - transform.position).ToString()); * //Vector3 temp = transform.position; * //transform.position = Vector3.Lerp (temp, player.transform.position, 0.1f); * yield return new WaitForSeconds(2); * } while(attacking);*/ }