- Home /
Question by
CrowdedWorlds · Sep 29, 2011 at 05:29 PM ·
c#animationraycasttrigger
C# - Trigger Animation with Raycasting?
Short and sweet question this time! I'm trying to trigger an object hit with a ray cast to fire off an animation. From everything I understand the following should work
void Update()
{
//Check if the E key is pressed`
if (Input.GetKey("e"))
{
activatekey=1;
RaycastHit hit;
int scrx = Screen.width /2;
int scry = Screen.height /2;
Ray ray = Camera.main.ScreenPointToRay(new Vector2(scrx,scry));
//Check if something is where our mouse is
if(Physics.Raycast(ray, out hit, 1f))
//Check if what we're hitting is the gameObject with a tag of "Food"
if(hit.transform.gameObject.tag == ("Food"))
{
hit.gameObject.animation["Take 001"].wrapMode = WrapMode.Once;
hit.gameObject.animation.Play("Take 001");
hit.transform.position = new Vector3 (Random.Range(0,1250),1,Random.Range(0,1950));
But clearly I don't understand because it yields this error
Assets/GetFood.cs(31,37): error CS1061: Type `UnityEngine.RaycastHit' does not contain a definition for `gameObject' and no extension method `gameObject' of type `UnityEngine.RaycastHit' could be found (are you missing a using directive or an assembly reference?)
Any assistance of catching where this has broken down would be appreciated :)
Comment
Best Answer
Answer by testure · Sep 29, 2011 at 05:55 PM
simple.. you're calling hit.gameObject, and there is no 'gameObject' in RaycastHit. you need to access the collider first:
hit.collider.gameObject
hit.collider.transform
etc...
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
MissingComponetException error 3 Answers
C#: Climb ledge while inside collider 1 Answer
RayCast is not triggering another object 1 Answer
Help With Player Decrease Enemy Health!,Need Help with Character 1 Answer