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 LoxRib · Apr 25, 2016 at 12:48 PM · c#nullreferenceexceptionaccesspassingspell

unable to pass parameters to a C# script (no GameObject)

Alright, hi all. I'm pretty new to Unity and I think I'm missing something... The problem is that I cannot access to a method on another script (which isn't attached to any gameObject) because everytime i try to, while playing the simulation, the "NullRefereceException" error appears...

What I'm trying to do is to cast a spell: a fireball prefab (just some particle effects) put in the Resources directory, has to be instantiated and then it should move to the target position.. the caster is the player which has the "CharacterSpellCast" script attached, the target is the gameObject i click.

Here there are the codes:

Casting spells script

 public class CharacterSpellCast : MonoBehaviour {
 
     public GameObject Player;
     private RaycastHit hit;
     private Transform target;
     Fireball fireball;
     
 
     void Start () {
         fireball = FindObjectOfType(typeof(Fireball)) as Fireball; 
         Player=this.gameObject;
 
     }
 
     void Update () {
         if(Input.GetMouseButtonDown(0)){
             Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
             if(Physics.Raycast(ray,out hit)&& hit.transform.gameObject!=this.gameObject){
                 target=hit.transform;
                 print (target.name);
                 fireball.Cast(target,Player.transform);
             }
         }
     }
 
 }

Fireball Script

 public class Fireball : MonoBehaviour {
 
     private Vector3 velocity = Vector3.forward;
 
     public void Cast (Transform Target,Transform Caster) {
         print("into");
         //GameObject fireball=GameObject.Find("Fireball");
         GameObject fireball = Resources.Load("Fireball") as GameObject;
 
         float time=0.5f*Time.deltaTime;
         if(fireball!=null){
             GameObject Spell = Instantiate(fireball);
             print ("into if");
             Spell.transform.position= Vector3.SmoothDamp(Caster.position,Target.position,ref velocity,time);
         }
         else 
             print("null");
     }
 }

The problem seems to be on fireball.Cast(target,Player.transform); but I'm not figuring how to deal with it... thanks for the help.

Comment
Add comment · Show 2
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 gjf · Apr 25, 2016 at 12:37 PM 0
Share

if you haven't attached the script to GameObject then it won't be found on line 10, so you will get a null reference exception.

you need to either Instantiate a GameObject with that script attached or use AddComponent() to add it..

avatar image Hellium · Apr 25, 2016 at 12:47 PM 1
Share

FAQ :

Some reasons for getting a post rejected:

  • Asking us to fix your code: more than likely, you simply need to get a better understanding of basic program$$anonymous$$g. Having a look at the Scripting tutorials on the Learn page will help you become more familiar with scripting in Unity

  • Posting about a specific compiling error or NullReferenceException: there is a myriad of these questions with answers already, have a look at those posts to get hints on what could possibly be your issue

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by LeftyRighty · Apr 25, 2016 at 01:25 PM

fireball = FindObjectOfType(typeof(Fireball)) as Fireball;

FindObjectOfType looks in the current scene, it's not going to find anything you haven't already instantiated

a fireball prefab (just some particle effects) put in the Resources directory

Overall it sounds like you should be using resources.load to find the fireball from the resources folder http://docs.unity3d.com/ScriptReference/Resources.Load.html

Comment
Add comment · 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

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

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Car from Unity's standard assets giving me of null reference errors 0 Answers

NullReferenceException after loading a new scene ? 0 Answers

NullReferenceException: Object reference not set to an instance of an object, again 2 Answers

SetParent after Instantiate. NullReferenceException error 1 Answer

Having troubles using List 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