- Home /
Object transported to point instead of moving towards it?
I'm trying to have the object roll over or at least just travel to the points and for it to have continuous raycasting so its not only putting one point down for each tap on the screen. If any of this is possible please let me know, sorry I realize its a tall order. Thank you!
using System.Collections;
using System.Collections.Generic;
using UnityStandardAssets.CrossPlatformInput;
using UnityEngine;
using System;
public class playerController : MonoBehaviour {
public float moveSpeed = 0.2f;
public GameObject player;
public int score;
public float size;
Ray ray;
RaycastHit hit;
private Vector3 Target;
void Update()
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(transform.position, Camera.main.transform.forward, out hit, Mathf.Infinity))
{
if (Input.GetMouseButtonDown(0))
{
if (Physics.Raycast(ray, out hit, 100.0f))
{
if (hit.transform != null)
{
//The position of the click on the ground
Debug.Log(Target);
Target = hit.point;
}
}
}
}
/**
* if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)
{
// Get movement of the finger since last frame
Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
// Move object across XY plane
transform.Translate(-touchDeltaPosition.x * moveSpeed, 0.0f, -touchDeltaPosition.y * moveSpeed);
}
* */
}
void FixedUpdate()
{
float distP = Vector3.Distance(player.transform.position, Target);
for(int i = 0; i< distP; i++)
{
player.transform.position = Vector3.Lerp(player.transform.position, Target, moveSpeed);
}
}
void OnCollisionEnter(Collision collision)
{
//IF SIZE IS LARGER THAN OBJECT THEN ASSUME THAT OBJECT, ELSE DO NOTHING
}
}
Answer by donutLaserDev · Sep 14, 2018 at 06:24 AM
The loop in which you lerp the position is executed in one frame, which is why the player is seemingly teleporting to the target position. https://docs.unity3d.com/ScriptReference/Vector3.Lerp.html has a good example on how to make the lerp function move the object gradually over multiple frames.
Your answer
Follow this Question
Related Questions
How to move gameobject with touch on Android 1 Answer
Lerping...Change Speed During Lerp? 1 Answer
Stopping Vector3.Lerp 3 Answers
Is Lerp acting weird? 2 Answers
How do I translate around a circle? 3 Answers