Can we use a TryGetComponent here

I used a TryGetComponent here and it functions the same. Is this an acceptable use case for this scenario?

Yeah that seems like a good use case, the only thing I would change personally is check for the mouse input first before TryGetComponent

1 Like

Any specific reason why you’d do that?

The only reason I would do that is GetMouse is being checked for every target in the for loop so if you check for the mouse first you don’t even have to enter the for loop at all or check for components. It’s just a small optimization


Thank you for the explanation. Helps with a sense of understanding optimization

That will cause an issue later when we introduce affordances (cursor changing with the type of action available at that location).


Sorry about that, didn’t realize the context

It doesn’t come in till the last section of the course.

Yes, TryGetComponent is a powerful tool which, unfortunately, wasn’t a thing in the version we recorded this course in.

Nifty tidbit, you can omit the <CombatTarget> portion of the method call, because the compiler will properly infer the type from the out parameter

if(hit.transform.TryGetComponent(out CombatTarget target))

Also remember when using this that target is guaranteed to be valid within the if code block, but no such guarantee exists once you are out of the code block.

1 Like

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.

Privacy & Terms