- Home /
How do you assign a ray to a game object?
I'm trying to figure out path finding and I'd like my characters to move to different speeds according to the type of terrain. I thought of emitting rays under the agents so I could check the type of object under them with an "if" statement. However, one line of code is problematic and I can't seem to figure out how to fix it. I can't figure out how to assign the rays under the agents.
using UnityEngine;
using System.Collections;
public class followtarget : MonoBehaviour
{
public Transform target;
NavMeshAgent agent;
// Use this for initialization
void Start ()
{
agent = GetComponent<NavMeshAgent> ();
}
RaycastHit CheckSpeed;
private float raycastLength = 10;
//this is the problematic line
private Ray ray = new Ray(GameObject.transform, transform.up(-1));
// Update is called once per frame
void Update ()
{
agent.SetDestination (target.position);
if (Physics.Raycast (ray, out CheckSpeed, raycastLength))
{
if (CheckSpeed.collider.name == "Gazon")
{
agent.speed /= 2;
}
}
Debug.DrawRay(ray.origin, ray.direction * raycastLength, Color.yellow);
}
}
Do you want to raycast in "down" direction under the object and get hitinfo about ray collider?
Answer by Askmejin · Jan 04, 2015 at 07:15 PM
I am pretty sure you need to use "Vector3.down" as a raycast direction. Something like:
if (Physics.Raycast(transform.position, Vector3.down, out CheckSpeed, raycastLength))
{
if(CheckSpeed.collider.name == "Gazon")
{ /*...*/ }
}
Anyway, look at Documentation and you can find your answer or search here:
Answer by Qasem2014 · Jan 04, 2015 at 07:33 PM
RaycastHit Hit;
if(Physics.Raycast(transform.position, Vector3.down, out Hit, 10)) { print("I am over "+Hit.transform.name); }
test this code :)
Your answer
Follow this Question
Related Questions
AI Pathfinding using RayCast 0 Answers
Raycast not visible 1 Answer
how to select an object with raycasting 1 Answer
How to make a minimap camera zone grow bigger and smaller with zoom 0 Answers
Raycast pathfinder nodes 1 Answer