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 /
avatar image
0
Question by Nedcallescarlett · Jun 25, 2017 at 08:48 PM · raycasthitif-statementstagsparent-childheadshot

Having trouble making headshots do more damage (JS)

So I have a zombie, and it is the parent of a head model, just the head is tagged "Head", why doesnt this work? shooting the head should do more damage? Thanks (javascript):

 var DamageAmount : int = 5;
  var DamageAmountHead : int = 15;
  var TargetDistance : float;
  var AllowedRange : float = 400;
  
  function Update () {
      if (GlobalAmmo.LoadedAmmo >= 1) {
          if(Input.GetButtonDown("Fire1")) {
  
              var Shot : RaycastHit;
              if (Physics.Raycast (transform.position, transform.TransformDirection(Vector3.forward), Shot)) {
                  TargetDistance = Shot.distance;
                  if (TargetDistance <= AllowedRange &&  (Shot.collider.tag.Equals("Head"))) { 
                      Shot.transform.SendMessage("DeductPoints", DamageAmountHead, SendMessageOptions.DontRequireReceiver);
                  }
                  else  if (TargetDistance < AllowedRange) {
                   
                          Shot.transform.SendMessage("DeductPoints", DamageAmount, SendMessageOptions.DontRequireReceiver);
                      }
                  }
              }
          }
      }
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

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by cstooch · Jun 26, 2017 at 04:49 AM

Maybe do a couple Debug.Log statements..

  • print out the collider tag right after your if (Physics.Raycast, etc... to make sure it is "Head" when you hit the head..

  • put one Debug.Log in each branch of the if/else if section below to see which branch gets called when you hit the head.

The code looks like it should work, but the debugging I mentioned might help point out something obvious you are missing.

Comment
Add comment · Show 2 · Share
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
avatar image Nedcallescarlett · Jun 26, 2017 at 09:12 AM 0
Share

Assets/Scripts/HandGunDamage.js(13,23): BCE0034: Expressions in statements must only be executed for their side-effects.

I get that error when adding Debug.Log; to the code? Here

 var DamageAmount : int = 5;
 var DamageAmountHead : int = 15;
 var TargetDistance : float;
 var AllowedRange : float = 400;
   
 function Update () {
     if (GlobalAmmo.LoadedAmmo >= 1) {
         if(Input.GetButtonDown("Fire1")) {
   
             var Shot : RaycastHit;
             if (Physics.Raycast (transform.position, transform.TransformDirection(Vector3.forward), Shot)) {
                 TargetDistance = Shot.distance;
                 Debug.Log;
                 if (TargetDistance <= AllowedRange &&  (Shot.collider.tag.Equals("Head"))) { 
                     Shot.transform.Send$$anonymous$$essage("DeductPoints", DamageAmountHead, Send$$anonymous$$essageOptions.DontRequireReceiver);
                     Debug.Log;
                 }
                 else  if (TargetDistance < AllowedRange) {
                    
                     Shot.transform.Send$$anonymous$$essage("DeductPoints", DamageAmount, Send$$anonymous$$essageOptions.DontRequireReceiver);
                     Debug.Log;
                 }
             }
         }
     }
 }

And the head has a collider that is fit to it and the rest of the zombie does too.

avatar image cstooch Nedcallescarlett · Jun 26, 2017 at 12:44 PM 0
Share

Debug.Log is meant for you to print out a message to the console.. i.e. you have to supply it a message, not just say "Debug.Log;"

ex.:

 if blah blah blah...
    Debug.Log("Head should be hit here");
 else if blah blah blah...
    Debug.Log("Body should be hit here");


After that's there, and if it works, you would look at the console window in the Unity editor for the debug log messages.

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

67 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

Related Questions

Can't Instantiate the GameObject and make it parent to GameObject which it hits. 0 Answers

I am using this script to drag/move gameobjects with the mouse. I need the script to ONLY recognize objects with a TAG, like "Painting", How can I fix this? 3 Answers

UnityException: Tag: GlassCup is not defined. 1 Answer

How to make ray hitting only game objects with tag from list 2 Answers

Need help with C# code. both gameObject and col.gameObject are getting destroyed. here is the code. 2 Answers


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