Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
12 Jun 22 - 14 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 zsradu · Nov 22, 2018 at 02:00 PM · update functiongameobject.find

Find is not allowed in Update yet I need to get a position of another component once every 0.35f seconds

Hello. I know Unity doesn't let the Find function in Update function, but rather in Start. But I need to get a position of a component that my current script is NOT on. A part of my Update code:

 void Update()
     {
         timer += Time.deltaTime;
         if (timer >= 0.35f) 
         {
             newPlayerLength = GameObject.Find("Player_Dragon").GetComponent<Player_Movement>().lengthOfPlayer;
 
             newPlayerPosition = GameObject.Find("Player_Dragon").GetComponent<Player_Movement>().transform.position;
 
             timer = 0f;
         }
 }

How can I get the new player length and position without using the Find function?

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

Answer by Hellium · Nov 22, 2018 at 03:12 PM

I don't where you have read that Unity doesn't let the Find function in Update function. YOU CAN, but it's not advised since the function is heavy.

 // Drag & drop the gameObject with the player movement in the inspector
 [SerializeField]
 private Player_Movement playerMovement;

 // The following getter will try to retrieve it at runtime
 private Player_Movement PlayerMovement
 {
     get
     {
         if( playerMovement == null )
         {
             GameObject playerDragon = GameObject.Find("Player_Dragon") ;
             if( playerDragon != null )
                 playerMovement = playerDragon.GetComponent<Player_Movement>() ;
             else
                 Debug.LogError("Can't find Player_Dragon object. Is it enabled ?" );
         }
         return playerMovement;
     }
 }
 
 void Update()
 {
     timer += Time.deltaTime;
     if (timer >= 0.35f && PlayerMovement != null ) 
     {
         newPlayerLength = PlayerMovement.lengthOfPlayer;
         newPlayerPosition = PlayerMovement.transform.position;
 
         timer = 0f;
     }
 }
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 zsradu · Nov 22, 2018 at 06:45 PM 0
Share

Sorry, how to drag the game object? The script where I need the length and position is a prefab named Dragon_Pieces and the game object with the length and position script is called Player_Dragon, obviously. Do I need to drag the Player_Dragon in the Dragon_Pieces inspector? Because I cannot do that.

avatar image Hellium zsradu · Nov 22, 2018 at 07:37 PM 0
Share

Everything should be fine with the given script. If you can't drag & drop, the getter will retrieve the object at runtime. If Dragon_Pieces is instantiated after Dragon_Player is in the scene, Find should be called only once.

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

157 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

Related Questions

GameObject.Find("object name") never returns null. Even if object doesn't exist! 1 Answer

Components arent being found in script references 1 Answer

Variables not being updated with get and set [SOLVED] 2 Answers

Capture Screenshot on Linux Headless Machine 3 Answers

Replace Update() with Event or Action? C# 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