Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by Cleite · Dec 20, 2016 at 01:03 PM · raycastarguments

Why can I not make the optional agruments to my Raycast work?

I have some trouble with Raycast. Well, actually, it's working perfectly at the moment, but I'm wondering why my previous attempts did not work. Here is the current code:

 public LayerMask layer;

 private void FixedUpdate ()
 {
     Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
     RaycastHit hit

     // bool hasClicked is set in Update() to true if there has been a mouse click
     if (hasClicked && Physics.Raycast(ray, out hit, Mathf.Infinity, layer))
     {
         // Do the things I want with the different attributes of hit
         hasClicked = false;
     }
 }

As I said, this works fine. But I am having trouble understanding why some other Raycast calls fail. In the documentation, the overload that I want looks like this:

 public static bool Raycast(
     Ray ray, 
     out RaycastHit hitInfo,
     float maxDistance = Mathf.Infinity, 
     int layerMask = DefaultRaycastLayers, 
     QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

The easiest use of this would be the call Physics.Raycast(ray, out hit), but for my purposes I need to specify a value for layerMask. I've read up on optional and named arguments for C#, trying to do this call without specifying maxDistance, and I have no idea why the call Physics.Raycast(ray, out hit, layerMask: layer) gives errors. The errors reported by Unity are as follows:

  1. The best overloaded method match for `UnityEngine.Physics.Raycast(UnityEngine.Ray, float, int)' has some invalid arguments

  2. Argument `#2' does not require `out' modifier. Consider removing `out' modifier

How come it can't find the correct overload? Is it somehow my fault (i.e. is this as expected from the C# specifications), or is C# and Unity's compiler just bad at finding the correct overload when I meddle with the named and optional arguments?

Even when I try to name everything, and call Physics.Raycast(ray: ray, hitInfo: out hit, layerMask: layer) I get the following error

The best overloaded method match for `UnityEngine.Physics.Raycast(UnityEngine.Ray, out UnityEngine.RaycastHit, float)' does not contain a parameter named `layerMask'

Once again, it's struggling to find the correct overload. Is it at all possible to call the overload that I want without specifying maxDistance?

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

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

Answers Answers and Comments

106 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Unity Error CS1729 The Type 'Plane' does not contain a constructer that takes 2 arguments 0 Answers

How to cast a Ray using local pivot of an object? 1 Answer

Third person shooter need some help 0 Answers

Error CS165 after Update 1 Answer

wall check is always returning true even though the distance doesn't fit my parameters :( 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges