x


Raycast is returnig hits only once per object?

So here is my problem... my raycast returns hits only once per rigidboy or collider, i want it to return hits everytime... here is my code

    function FixedUpdate () 
    {

    var hit : RaycastHit;
    Debug.DrawRay(BarrelEnd.position,BarrelEnd.forward *10, Color.green);
    if (Physics.Raycast (BarrelEnd.position, BarrelEnd.forward, hit, 100.0)) 
    {
            if(hit.rigidbody.tag == "Friendly")
            {
                print("Friendly");
            }

    }
    else 
    {
    print("Nothing");
    }
}

I am trying to get the raycast to return a value only when its hitting the ship where the turret attached(so it doesnt shoot when aiming at itself or at a friendly).

When it starts its fine (prints Nothing), it hits me its fine(prints Nothing), it hits the ship it prints friendly, but when it moves away from the ship it still prints friendly...

Been looking on the forums for days didnt find an answer.

more ▼

asked Oct 18 '10 at 07:59 AM

privateknez gravatar image

privateknez
22 2 2 6

(comments are locked)
10|3000 characters needed characters left

2 answers: sort voted first
This code seems to work for me...



private var raytest : int = 0;

function FixedUpdate () 
{

var hit : RaycastHit;
Debug.DrawRay(BarrelEnd.position,BarrelEnd.forward *100, Color.green);
if (Physics.Raycast (BarrelEnd.position, BarrelEnd.forward, hit, 100.0)) 
   {
        if(hit.rigidbody.tag != "Friendly")
        {
            raytest = 0;
        }
        if (hit.rigidbody.tag == "Friendly")
        {
        raytest = 1;
        }
   }
   else
   {
   raytest = 0;
   }
print(raytest);
}

It returns 1 when hitting a friendly and 0 when hitting anything else or nothing, and thnx for the collapse thingy

more ▼

answered Oct 18 '10 at 09:20 AM

privateknez gravatar image

privateknez
22 2 2 6

This helped me with a few pointers, just been having a similar problem. I realised that just changing a variable based on the cast and then debugging out that variable was a much better way of doing what I wanted. Cheers!

Nov 15 '10 at 11:28 PM Novodantis 1
(comments are locked)
10|3000 characters needed characters left

keep in mind that you have set raycast lenght to 100.0 units... if your scene is out of scale this can cause problems.. try to visualy check for raycast... insert this code to true section of raycast

Debug.DrawRay (BarrelEnd.position, BarrelEnd.forward * hit.distance, Color.red);
more ▼

answered Dec 24 '10 at 02:35 AM

cupsster gravatar image

cupsster
385 6 8 15

(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x1797
x1706
x325
x161
x47

asked: Oct 18 '10 at 07:59 AM

Seen: 1339 times

Last Updated: Oct 18 '10 at 07:59 AM