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 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
Add comment · 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);

ins$$anonymous$$d ? 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

· 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

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

Instantiate prefabs before it comes into view 0 Answers

spell hit rigidbody 1 Answer

Gun Firing help? 2 Answers

Can someone explain the destroy () command? 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