I’m trying to make the player teleport back to the start when it falls off (hits a box collider below). It teleports sucessfully but the player is still moving. How do I solve this? (I’m using charactercontroller btw)
Here’s my script:
public class PlayerSwipeControl : MonoBehaviour {
public Swipe swipeControls;
public Transform plr;
private Vector3 desiredPosition;
private CharacterController controller;
private Vector3 startPos;
// Update is called once per frame
private void Start()
{
desiredPosition = plr.transform.position;
controller = plr.GetComponent<CharacterController>();
startPos = plr.transform.position;
}
private void FixedUpdate ()
{
if (swipeControls.SwipeLeft)
desiredPosition += Vector3.left * 20;
if (swipeControls.SwipeRight)
desiredPosition += Vector3.right * 20;
if (swipeControls.SwipeUp)
desiredPosition += Vector3.forward * 20;
if (swipeControls.SwipeDown)
desiredPosition += Vector3.back * 20;
var dir = desiredPosition - plr.transform.position;
var movement = dir.normalized * 25f * Time.deltaTime;
var gravity = 9.8f;
var gravityfps = 0f;
gravityfps -= gravity * Time.deltaTime;
movement.y = gravityfps;
if (movement.magnitude > dir.magnitude)
movement = dir;
controller.Move(movement);
}
private void OnControllerColliderHit(ControllerColliderHit hit)
{
if(hit.gameObject.tag == "death")
{
Debug.Log("die");
plr.transform.position = new Vector3(-2.66f, 2.017f, -10f);
}
Debug.Log(hit.collider.name);
}
}