Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 fortunez · Aug 15, 2013 at 10:01 PM · javascriptcollisionzombie

[Javascript] My script won't work..

I am trying to create a really simple AI for my zombie. It has no errors in console, however the bullets don't affect the health/zombies.

 var LookAtTarget : Transform;
 var damp : float = 6.0;
 
 var zombieHealth : int = 100;
 var minZombieHealth : int = 0;
 var maxZombieHealth : int = 100;
 var pistolDamage : int = 28;
 
 function Update () {
     ILookAtTarget();
     Health();
 }
 
 function Health(){
     if(zombieHealth < minZombieHealth){
         Destroy(this.gameObject);
     }    
 }
 
 function OnCollisionEnter(collision:Collision){
     if(collision.gameObject.tag.Equals("pistolBullet")){
         zombieHealth -= pistolDamage;
     }
 }
 
 function ILookAtTarget(){
      if(LookAtTarget)
              {
               var rotate = Quaternion.LookRotation(LookAtTarget.position - transform.position); 
               transform.rotation = Quaternion.Slerp(transform.rotation, rotate, Time.deltaTime * damp);
               transform.position = Vector3.MoveTowards(transform.position, LookAtTarget.transform.position, .08);
          }
 }    
Comment
Add comment · Show 3
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 midomido · Aug 15, 2013 at 10:08 PM 0
Share

It probably has nothing to do with your script rather with your physics , sometimes when the bullet is too fast it goes through the object without triggering the collision event, try maybe a slow bullet and manually collide it your self. see if that triggers the collision.

avatar image fortunez · Aug 15, 2013 at 10:12 PM 0
Share

I seem to have fixed it, the string for the tag was wrong, it was capitalized for some reason in tags.

How do I remove a question?

avatar image HeliosJack · Aug 15, 2013 at 10:14 PM 0
Share

I'm not sure, but congratulations! every fixed bug is a step closer to completion!

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by tw1st3d · Aug 15, 2013 at 10:15 PM

 if(collision.gameObject.tag.Equals("pistolBullet")){

Try using

 if(collision.gameObject.tag.EqualsIgnoreCase("pistolBullet")){

This ensures that if the tag somehow is in all lowercase/uppercase it will identify it either way.

Comment
Add comment · Show 3 · 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 tw1st3d · Aug 15, 2013 at 10:17 PM 0
Share

actually I don't know if UnityScript has EIC, so if EqualsIgnoreCase doesn't work, use

 if(collision.gameObject.toLowerCase(tag).Equals("pistolBullet")){
avatar image Eric5h5 · Aug 15, 2013 at 10:22 PM 0
Share

EqualsIgnoreCase is not related to any language, it's a .NET function.

avatar image tw1st3d · Aug 15, 2013 at 10:24 PM 0
Share

Java uses .equalsIgnoreCase(), but I'm not surprised that no other language uses it.

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

20 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

Related Questions

Adding sound javascript in unity2d 1 Answer

Object Collision PLEASE HELP!!! 1 Answer

How to add to a 3D object's length through code? 1 Answer

Trying to proceed to next level when multiple items have collided 1 Answer

My Javascript collision isn't being detected, please help. 0 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