Help with pulling objects toward player
Hey all!
In my FPS game, the player's main attack is throwing knives. Pretty straightforward. However, I want to add an ability to "recall" the knives (with a key press) once they're thrown into an enemy, dealing damage and returning back to the player to be added for future throws. I want the core mechanics to work before I implement damage, ammo, etc. It works to some extent but...
The problem I am facing is that when I recall the knives, they only go to the initial spawning point of the first person character. I can't seem to get them to return to the player's current position. I thought maybe making the transform.position = a new Vector3, but I cant lerp a new Vector... Even assigning the RigidBodyFPSController to the target of my script in the inspector doesn't change how it acts. I have looked into magnet scripts, I have googled around but i can't find a straightforward answer to my problem. Thanks in advance guys, I'm just a coding noob, but I'm getting there!
This is the code that is attached to the throwing knives.
using UnityEngine;
using System.Collections;
public class KnifeBrain : MonoBehaviour {
public float speed;
public Transform target;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
transform.Rotate(0, 0, speed);
if (Input.GetKey(KeyCode.E)) {
Rend();
}
}
void OnCollisionEnter() {
GetComponent<Rigidbody>().isKinematic = true;
speed = 0;
}
void Rend () {
GetComponent<Rigidbody>().isKinematic = false;
speed = 10;
transform.Rotate(0, speed, 0);
float step = speed * Time.deltaTime;
transform.position = Vector3.Lerp(transform.position, target.position, step);
}
}
How can I tweak Rend () so that they always come back to the player's position?