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 /
  • Help Room /
avatar image
0
Question by DroidDaughter · Jul 22, 2020 at 04:56 AM · public variablepassing

Passing a value between scripts for use in an argument?

I'm very much a beginner to object based programming and development through Unity so forgive me if this is extremely easy or has been answered already a million times. I've gone through a handful of questions here and haven't found a solution that's worked yet.


For context, the player can instantiate an object in front of them on left click. I want there to be a finite amount of times the player can do this, like ammo.

Here is the PlayerBehavior script with the simple if statement I want to use to determine if the player can place an object. I don't think PlayerBehavior knows anything in StressSystem exists, so my error in PlayerBehavior is at the if (currentStress > null) statement.

 public class PlayerBehavior : MonoBehaviour
 {
 
     public float speed;
     public GameObject statBlockPrefab;
     public StressSystem StressSystem;
 
     void Start()
     {
     
     }
 
     void Update()
     {
         // WASD to move
         Vector3 inputVector = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
         Rigidbody myRigidBody = GetComponent<Rigidbody>();
         myRigidBody.velocity = inputVector * speed;
 
         Ray rayFromCameraToCursor = Camera.main.ScreenPointToRay(Input.mousePosition);
         Plane playerPlane = new Plane(Vector3.up, transform.position);
         playerPlane.Raycast(rayFromCameraToCursor, out float distanceFromCamera);
         Vector3 cursorPosition = rayFromCameraToCursor.GetPoint(distanceFromCamera);
 
         // Face the new position
         Vector3 lookAtPosition = cursorPosition;
         transform.LookAt(lookAtPosition);
 
         if (Input.GetButtonDown("Fire1"))
         {
             Spawn(cursorPosition);
         }
     }
 
     public void Spawn(Vector3 targetPosition)
     {
         if (currentStress > null);
         {
             GameObject newBlock = Instantiate(statBlockPrefab, transform.position + transform.forward, transform.rotation);
         }
        
         
     }
 }
 

Next is the StressSystem script which just declares the public floats and starts by saying the current value is equal to the max value.

 public class StressSystem : MonoBehaviour
 {
 
     public float maxStress;
     public float currentStress;
 
     void Start()
     {
         currentStress = maxStress;
     }
 
     void Update()
     {
         //TO DO Tick stress up at a rate
     }
 }



Once I'm finally able to get currentStress passed to the if statement in PlayerBehavior, I want to have the spawn action in PlayerBehavior finish with currentStress -= 1.

I very much would understand if I'm going about this fundamentally weird or inefficient, so I would really appreciate some guidance!

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

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

206 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 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 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 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 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 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 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 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 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Networking Unity, I need to pass a simple variable value between Client and Server. 1 Answer

public variable not showing in inspector 1 Answer

(Help) I need this script to destroy all game objects in a scene. 1 Answer

Can not set a public variable of a script or gameobject in prefab 1 Answer

How do you access variables from a different script? 0 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