- Home /
This post has been wikified, any user with enough reputation can edit it.
Question by
IKilledKenny_2 · Oct 30, 2014 at 09:07 PM ·
playerraycasting
Auto Target Raycast
Hello Unity3D.I have a question about auto target?How can i make my characters auto target from each other by raycasting from when the round starts?For example i want my character and my opponent character to look at each other automatically as soon as the round starts with raycast(since i read that being the easiest way to auto lock on someone or something.)If anyone knows how to do this.Can you please tell me how i can code it or lend me tips because i have been stuck on this for weeks...
Code Here if anyone needs it
#pragma strict
var targetPos : Transform;
var lookAtObj : Transform;
var followSpeed : float = 10;
var hit : RaycastHit;
// smooth damp stuff
var targetSmoothDamp : float = 0.3;
var targets: GameObject[];
private var targetVX : float;
private var targetVY : float;
private var targetVZ : float;
function Start () {
}
function Update () {
if(hit.collider.CompareTag("Player"))
transform.position.x = Mathf.SmoothDamp(transform.position.x, targetPos.position.x, targetVX, targetSmoothDamp);
transform.position.y = Mathf.SmoothDamp(transform.position.y, targetPos.position.y, targetVY, targetSmoothDamp);
transform.position.z = Mathf.SmoothDamp(transform.position.z, targetPos.position.z, targetVZ, targetSmoothDamp);
transform.position.y = Mathf.Lerp(transform.position.y, targetPos.position.y, Time.deltaTime * 10);
transform.LookAt(lookAtObj);
}
Comment
Answer by DajBuzi · Oct 30, 2014 at 10:23 PM
Hello,
I've read your code and my guess is that you need to "fire" raycast :
var ray = new Ray(from /* where the raycast starts */, dir /* direction of your raycast */, dist /* distance of that raycast */);
if(Physics.Raycast(ray, out hit))
{
if(hit.collider.CompareTag("Player")) //... your code here
If this answer wouldnt be enough, please ask a question in comment and i'll edit.
Regards, M.Rogalski