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 donutkeith · Nov 20, 2012 at 08:26 AM · collidermesh

Why am I getting a null reference exception

I am trying to get the height of my mesh so that when he crouches I can change the size of the capsule collider. So I would like to know what is the difference between the capsule collider and the character controller. Are they the same thing or does the character controller just include a collider? And the big question is how to get the size of the mesh? I have looked online and used the some of the code from the documentation of unity javascript. Here is my code:

pragma strict

/ This script get the collider of the object it is attached to // and makes sure that the collider stays around the object appropriately

 private var mCollider : CharacterController;
 var m : Mesh;
 private var cHeight : float;
 private var cCenter : Vector3;
 private var mBounds : Bounds; 
 
 function Start () 
 {
    mCollider = GetComponent(CharacterController); 
    m = GetComponent(MeshFilter).mesh; // <-- This is the problem
  //  mBounds = m.bounds;                 <-- Commented out
  //  cHeight = mCollider.height;         <-- ' '
  //  cCenter = mCollider.center;         <-- ' '
 }
 
 function Update () 
 {
    //cCenter = mBounds.center;           <-- ' '
 } 

I just for right now what to be able to set the collider height to the height of my mesh. This way I can scale down the collider with the height of my mesh. I don't want to scale the collider down by some constant that happens to be the height of my mesh. For example I probably could just half the height of the collider and be ok but I'd rather not do that. So why am I getting a null reference exception? How do I say that I am refering to the mesh that the script is attached to?

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
Best Answer

Answer by liszto · Nov 20, 2012 at 09:12 AM

You get null reference exception because you don't verify before do :

  m = GetComponent(MeshFilter).mesh;



That thing really exist so if you're object don't have it you try to fill your var "m" with a null value cause your component doesn't exist on your GameObject.

You must ALWAYS do this before try to instantiate var like this ==>

  if( this.GetComponent(CharacterController) )  
          mCollider = GetComponent(CharacterController);
  else
      Debug.Log("Give me a CharacterController");
 
  if( this.GetComponent(MeshFilter) )   
          m = GetComponent(MeshFilter).mesh;
  else
      Debug.Log("Give me a MeshFilter");



And you're lucky because if one of your GameObject don't have a CharacterController you'll get the same error :)

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

10 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

Related Questions

mesh colliders moving when i press play 1 Answer

how do i make my modle solid? 2 Answers

adding mesh collider in run time slow? 3 Answers

collision between a rigidbody and a mesh collider not working 1 Answer

Animating a box collider does not animate the mesh renderer. 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