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 Reedex · Jan 22, 2018 at 10:53 AM · c#optimize

Hi,how to optimize this C# script,looks like mess to me. :) + doesn't work as it should;

Hi,how to optimize this C# script,looks like mess to me. :) + doesn't work as it should; if it's not that messy,how can i check if i have more than 5 manapoints? because now when i press B,nothing happens,...++ if i try to write Mana.baterieSlider.value = currentMana to update its says not in current context...

     private AudioSource source;
     public AudioClip hasteSound;
 
     public float countdown = 0;
     public float AirBasic = 30;
 
     public float currentMana = 0;
 
 
     bool isHaste;
 
 
     void Awake()
     {
         GameObject thePlayer = GameObject.Find ("Player");
         PlayerVitals Mana =  thePlayer.GetComponent<PlayerVitals> ();
         Mana.baterieSlider.value = currentMana;
 
         source = GetComponent<AudioSource> ();
 
     }
 
     void Update () {
 
 
         if (Input.GetKeyUp (KeyCode.B)&& !isHaste&& currentMana > 5)
             
         {
             GameObject thePlayer = GameObject.Find ("Player");
             PlayerVitals Mana =  thePlayer.GetComponent<PlayerVitals> ();
             inventory moveSpeed = thePlayer.GetComponent<inventory> ();
 
             isHaste = true;
             countdown = AirBasic;
             moveSpeed.speed += 1;
             Mana.baterieSlider.value -= 5;
             source.PlayOneShot (hasteSound, 0.9f);
 
         }
         if (isHaste == true) 
         {
             countdown -= Time.deltaTime;
         }
         if (countdown <= 0) 
         {
             //countdown = 0;
             isHaste = false;
             GameObject thePlayer = GameObject.Find ("Player");
             inventory moveSpeed = thePlayer.GetComponent<inventory> ();
             moveSpeed.speed = 4;
 
         }
     }
 }
 
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 hrishihawk · Jan 22, 2018 at 11:18 AM 0
Share

Here are some of the things you could do to optimize your code

  1. You don't need to use GameObject.Find("Player") more than once.Ins$$anonymous$$d declare a variable to store the player gameobject and store it in Awake or Start method. Generally avoid using GameObject.Find in Update method.

  2. Same goes for $$anonymous$$ana ,movespeed variable.Declare those globally so you can use them anywhere from your script.

avatar image Reedex hrishihawk · Jan 22, 2018 at 11:56 AM 0
Share

i do try to avoid it, but here it only finds when pressed button,not even Get$$anonymous$$ey,just Get$$anonymous$$eyUp,.that's ok,is it not?:)+ yeah i tried to cache it,but then i had ,not in current context in update.

1 Reply

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

Answer by Hellium · Jan 22, 2018 at 11:05 AM

Try this:

 private AudioSource source;
 public AudioClip hasteSound;
 
 public float countdown = 0;
 public float AirBasic = 30;
 
 public float currentMana = 0;
 
 
 bool isHaste;
 
 private GameObject player ;
 private PlayerVitals mana;
 private inventory inventory;
 
 void Awake()
 {
     player = GameObject.Find ("Player");
     if( player == null )
     {
         Debug.LogError("Can't find the player");
         enabled = false ;
         return ;
     }
     inventory = player.GetComponent<inventory> ();
     mana = player.GetComponent<PlayerVitals> ();
     mana.baterieSlider.value = currentMana;
     source = GetComponent<AudioSource> ();
 }
 
 void Update ()
 {
     if ( !isHaste )
     {
         if( Input.GetKeyUp (KeyCode.B) && currentMana > 5)
         {
             isHaste = true;
             countdown = AirBasic;
             inventory.speed += 1;
             mana.baterieSlider.value -= 5;
             source.PlayOneShot (hasteSound, 0.9f);
         }
     }
     else
     {
         countdown -= Time.deltaTime;
         if (countdown <= 0)
         {
             isHaste = false;
             inventory.speed = 4;
         }
     }
 }
Comment
Add comment · Show 2 · 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 Reedex · Jan 22, 2018 at 11:29 AM 0
Share

yep i got it, i should've put the line 27(your code) in Update ,line 32(again in yours) to me it said not in current context,.now the context is all over the place. :) thank you J

avatar image Bunny83 Reedex · Jan 22, 2018 at 12:18 PM 0
Share

Uhm it would help when you could cite the exact error message. It most likely tells you what is not available / accessible in this context. If it's the line you have mentioned it's either the baterieSlider in PlayerVitals or the value inside your slider.

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

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

Upcast vs GetComponent 1 Answer

Unity 5.2 messing up car 0 Answers

How to get the component in a new class 0 Answers

Nav Mesh Problem with SetDestination 1 Answer

How do you execute code every X angles reliably? 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