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 WesterlyCarrot9 · Apr 19, 2013 at 11:14 PM · javascripttriggervariableaccess

Access variable from another script? Health!

Ok so i use those two scripts below. One creates a GUI box which displayers the health of the player and the other one is the trigger of the floor that will also make falling damage possible. Unfortunately when the player lands on the trigger i get: "Object reference not set to an instance of an object". How can i correctly access my curHealth var?Thanks!

 var curHealth : int = 100;
 var maxHealth : int = 100;
 
 function OnGUI(){
     GUI.Box(new Rect(20,20,80,40), curHealth + "/" + maxHealth);
 }



 function OnTriggerEnter(other:Collider){
     var otherScript: FallingDamage = GetComponent(FallingDamage);
     otherScript.curHealth -= 10;
 }    
 
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

3 Replies

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

Answer by xKroniK13x · Apr 20, 2013 at 12:40 AM

I do it like this most of the time...

 var otherScript : FallingDamage = GameObject.Find("GameObjectName").GetComponent(FallingDamage);

Replace GameObjectName with the name of the game object that contains the script.

However, if this is all contained in the same script, you can simply just access the variable with curhealth -= 10;

Comment
Add comment · Show 1 · 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 WesterlyCarrot9 · Apr 20, 2013 at 01:04 PM 0
Share

Thanks a lot!

avatar image
1

Answer by RandomDeveloper · Apr 20, 2013 at 12:56 AM

Maybe like this :

 //otherscript.js
 
 var health : int;
 var Maxhealth : int = 100;
 
 function Start (){
 health = Maxhealth;
 }
 
 function Ouch (damage : int){
 damage -= health;
 }
 
 //groundscript.js
 
 var player : GameObject;
 var FloorDamage : int = 40;
 function OnTriggerEnter(other:Collider){
 player.GetComponent(otherscript).Ouch (FloorDamage);
 }   

I use this kind of thing a lot.

Comment
Add comment · Show 1 · 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 xKroniK13x · Apr 20, 2013 at 05:16 AM 0
Share

Good code excerpt for him. Remember, OP, if you use this, when you put groundscript.js on an object, you then have to assign player in the inspector window for it to work.

avatar image
0

Answer by Brian-Kehrer · Apr 20, 2013 at 12:36 AM

you want this, if the script is attached to the other object

var otherScript: FallingDamage = other.gameObject.GetComponent(FallingDamage);

You should also check for null.

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

13 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

Related Questions

Access on child's trigger in parent script 1 Answer

Changing The Value Of A Variable From Another Script (JavaScript) 1 Answer

Collision object and access to a script variable? 1 Answer

How to access a variable in a script on the same object. 1 Answer

How do I access information (eg, variables, functions, properties) on other objects from inside a script? 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