Hi all,
I am new to Unity, this is my 2nd post.
I am basically shooing out a Raycast from the barrel of my gun, and I am trying to get the animated “enemy” NPC to detect when he is hit.
From my BasicAmmoRayCast class, I am shooting out a RayCast, but I am getting errors when I attempt to use hit.collider.gameObject.tag on my animated character (“MaleCharacterAnimation”)
{
protected override void OnUpdate ()
{
base.OnUpdate ();
RaycastHit hit = new RaycastHit();
Ray ray = new Ray(CachedTransform.position,transform.TransformDirection (Vector3.forward));
if (!_hit && _hitPrefab != null && Physics.Raycast (ray,out hit,_fireDistance)){
SpawnHit(hit.collider,hit.point,Quaternion.FromToRotation (Vector3.forward, hit.normal));
_hit = true;
// Echo the Raycast transform
Vector3 forward = transform.TransformDirection(Vector3.forward) * 50;
Debug.DrawRay(transform.position, forward, Color.green);
// Tell me what object is hit
if (Physics.Raycast(ray, out hit)) {
print(hit.collider.gameObject.name);
}
// Detect if my enemy character is hit
if (Physics.Raycast(ray, out hit))
if (hit.collider.gameObject.tag("MaleCharacterAnimation")) {
print("HIT TARGET");
}
}
}
I am getting the error "Non-invocable member 'UnityEngine.GameObject.tag' cannot be used like a method" on this line
if (hit.collider.gameObject.tag("MaleCharacterAnimation"))
How would I refer to my game object? Or what would be the best way to go about this?
Basically, I want to be able to detect the hit on the NPC and then make him go through a transition of dying etc...
I don't currently have a script on the NPC as yet, as I thought it would be better to script it from the player end. Furthermore, I am not actually sure how I would detect a hit from a raycast on that NPC Character.
Any information or suggestions would be most appreciative.
Thankyou in advance,
An eager new Unity user.... (and C# noob).