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 /
avatar image
0
Question by Crown3d · Aug 20, 2017 at 12:20 AM · c#2d-platformer

Changing a variable from a different method

Hello, I'm new to both unity, and the world of programming. I've been working on my first game in unity. I'm trying to convert a premade controller I found to have touch screen abilities. After watching a few tutorials on youtube I found the easiest way to do this is by using a second script (Touch controller) The Player controller I'm using however is far more complex then those used in the tuts so I'm very lost on what I'm doing.

    public void ProcessInput()
         {
 
             float inputAxisX = Input.GetAxis("Horizontal");
            
             
             
 
             if (inputAxisX == 0)
             {
                 Debug.Log("AxisX = 0");
             }
            
             else
             {
                 Debug.Log("Moving! " + inputAxisX);
             }
 
            
             bool isKeyDownJump = Input.GetButtonDown
                 ("Jump");
 
 
             bool isKeyDownLeft = inputAxisX <-.5;
 
 
 
             bool isKeyDownRight = inputAxisX > .5;



This seems to be the most important code when it comes to input. I need a way to change the inputAxisx from a different method that I named move for the player to move when my on screen buttons are touched with unitys built in event trigger system with pressdown, and pressup

  public void Move()
         {
 
         }

But I'm not sure how to go about this.

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

Answer by TheSOULDev · Aug 20, 2017 at 03:08 AM

So this is your code:

 public void ProcessInput()
          {
  
              float inputAxisX = Input.GetAxis("Horizontal");
             
              
              if (inputAxisX == 0)
              Debug.Log("AxisX = 0");
              else
              Debug.Log("Moving! " + inputAxisX);
  
             
              bool isKeyDownJump = Input.GetButtonDown ("Jump");
  
              bool isKeyDownLeft = inputAxisX < -0.5f;
              bool isKeyDownRight = inputAxisX > 0.5f;
         }

I'm assuming you want to make your Move move the character when isKeyDownLeft or isKeyDownRight is on, right?

Now I'm not sure what you mean by changing variables from a different method. Methods are like functions; if you want to give a function variables, you just send it arguments. From what you want it seems like you need code to go from one script to another.

That is done in several ways - one is you could make the variables you need static, essentially telling Unity that those variables have one instance, and then you don't need to specify the gameobject holding the script to change them because Unity just changes all of them, OR you will have copies of your script which will then be on a gameobject, which you can reference later. I'd assume as a starter you want the latter. First of all, the method you have needs to either return something or have the bools it changes outside of the method. Let's say you have another script called "Player". This script would look something like this:

 public class Player : MonoBehaviour
 {
     public TouchController TouchCont;
     Rigidbody2D charRB;
 
     const float speed = 1.0f;
 
     void Start ()
     {
         TouchCont = FindObjectOfType<TouchCont>();
         charRB = GetComponent<Rigidbody2D>();
     }
 
     void Update()
     {
         if(TouchCont.isKeyDownLeft)
         charRB.velocity = Vector2.left * speed;
         else if(TouchCont.isKeyDownRight)
         charRB.velocity = Vector2.right * speed;
         else
         charRB.velocity = Vector2.zero;
     }
 }


While a part of your original script would look something like this:

 public class TouchController : MonoBehaviour
 {
     public bool isKeyDownJump, isKeyDownLeft, isKeyDownRight;
 
     public void ProcessInput()
     {
         float inputAxisX = Input.GetAxis("Horizontal");
                 
         if (inputAxisX == 0)
         Debug.Log("AxisX = 0");
         else
         Debug.Log("Moving! " + inputAxisX);
      
                 
         isKeyDownJump = Input.GetButtonDown ("Jump");
      
         isKeyDownLeft = inputAxisX < -0.5f;
         isKeyDownRight = inputAxisX > 0.5f;
     }
 
     void Update()
     {
         ProcessInput();
     }
 }

However, this is a really crappy implementation and not optimized. Before going further into creating your game, I'd advise you to go through Beginner, Intermediate and Editor scripting tutorials here https://unity3d.com/learn/tutorials/s/scripting (top 3), watch them as many times as you need and hopefully you'll be a better programmer. I didn't add the jump movement but I think you'll be able to fill in the blanks after watching the tutorials.

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

374 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 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

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

How can I flip only my 'Player' gameobject, and l leave it's child object alone? 2 Answers

Flipping a 2D Game object over time 1 Answer

HOLD JUMP BUTTON TO JUMP HIGHER 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