• 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
Question by ClassicGameJunkie · Mar 21, 2014 at 08:34 PM · javascriptdestroyprojectilefirenullreferenceexeption

Projectile Script Works Until Destroying Projectile

So I have a script that launches a projectile from a position on a button press, it works fine, the projectiles start firing and stacking up. So naturally I want to make sure they get destroyed after a short while to save memory etc.

But when I add the destruction line I get a NullReferenceException : Object reference not set to an instance. The code so far is below. Any ideas how I would remedy this? Thanks.

 var projectile : Rigidbody;
 var speed = 50;
  
 var fireRate = 0.11;
 private var lastShot = -10.0;
  
 function Update () {
 if(Input.GetButton("Fire1")){
     if(Time.time > fireRate+lastShot){
         clone = Instantiate(projectile, transform.position, transform.rotation);
         projectile.tag = "Fireball";
         clone.velocity = transform.TransformDirection( Vector3 (0, 0, speed));
  
         lastShot = Time.time;
     }
 Destroy(clone.gameObject, 3);
 }
 }
Comment

People who like this

0 Show 4
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 ShadoX · Mar 21, 2014 at 08:37 PM 0
Share

Which line do you get the NullPointerException on ? (if you click on the error in the console, it should open the script editor with the cursor at the line which is causing the Exception)

Also have you tried doing

 Destroy(clone, 3);

instead ? I don't see how only destroying the attached gameObject would free up memory if you'd leave everything else intact.. (or perhaps I'm just wrong about that)

avatar image robertbu · Mar 21, 2014 at 08:40 PM 0
Share

Try moving line 16 to line 13.

avatar image Sildaekar · Mar 21, 2014 at 08:50 PM 0
Share

Btw, all this instantiating and destroying is going to make a huge impact on performance, if I were you I'd look into object pooling.

avatar image ClassicGameJunkie · Mar 21, 2014 at 08:50 PM 0
Share

The error happens on line 16 as in

 Destroy(clone.gameObject, 3);

The desired effect is that the projectile disappears a second after launching. This script is attached to an empty object, pressing "Fire1" fires the projectile but it crashes the instant the projectile should be deleted and gives me the error.

Removing the word gameObject stops the crash, but doesn't delete the projectile.

Appreciate the help so far!

Update: Ah thankyou ShadoX moving the line worked!

However I'm curious robertbu, why will it impact performance? The projectiles are destroyed after 3 seconds, do they remain in the memory even after destruction?

0 Replies

  • Sort: 

Unity Answers is in Read-Only mode

Unity Answers content will be migrated to a new Community platform and we are aiming to launch a public beta by June 9. Please note, Unity Answers is now in read-only so we can prepare for the final data migration.

For more information and updates, please read our full announcement thread in the Unity Forum.

Follow this Question

Answers Answers and Comments

22 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

Related Questions

Projectile Firing From Floor, I Need Some Help 1 Answer

When An Object Doesnt Exist, Help Making a Variable In Another Script Change 1 Answer

Firing a projectile in 2D 0 Answers

Object reference not set to an instance of an object 1 Answer

Make an object destroy the object it is touching? 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