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
1
Question by Novandalis · Jul 22, 2014 at 05:27 PM · c#gameobjecttransform

Why isn't LateUpdate detecting changes from Update?

I'm having a problem where in the Update of one script, I set the transform of an object, then set a variable in another script to true.

 movingPiece.transform.position = temp;
 
         NewTurn ();
 
         BoardSetup.updateBoard = true;

Then, in the BoardSetup script, in Update, it tells each space of the board that it needs to update.

     void Update () {
 
         if (GameControlScript.endOfTurn || updateBoard) {
 
             UpdateBoard();
             updateBoard = false;
 
         }
 
     }
 
     void UpdateBoard() {
 
         foreach (GameObject boardSpace in boardSpaces) {
 
             BoardSpaceScript spaceScript = boardSpace.GetComponent<BoardSpaceScript>();
             spaceScript.needToUpdate = true;
 
 
         }
     }

Finally, in the BoardSpaceScript, in LateUpdate, it checks if there's something above it.

     void CheckOccupier() {
 
         RaycastHit hit;
 
         if(Physics.Raycast(transform.position, Vector3.up, out hit, 3f)){
 
             occupier = hit.transform.gameObject;
             isOccupied = true;
             BoardPieceScript pieceScript = occupier.GetComponent<BoardPieceScript>();
             if (occupier.tag == "Piece")
                 BoardSetup.gameBoard[xPos,yPos] = pieceScript.pieceID;
 
         } else {
 
             isOccupied = false;
             occupier = null;
             BoardSetup.gameBoard[xPos,yPos] = 0f;
 
         }
     }

However, it won't detect the object if it's transform wasn't above it in that frame. Shouldn't it already have moved over it by the time LateUpdate is called?

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 Owen-Reynolds · Jul 22, 2014 at 08:34 PM

Those 1st two code chunks just confused me.

I've never had a problem with it, but, from the docs "If you move colliders from scripting or by animation, there needs to be at least one FixedUpdate executed." I think this may also depend on rigid body status (but, again, script-move+raycast always works for me.) But I'd only suspect this if everything else in LateUpdate is for sure working, and the problem was narrowed down to the raycast.

If you have a grid, you could not raycast. You can just compute the square(s) you're in. If squares are 2 units wide, and DinoBoy is at x=5.5, he's leaving square 3, and mostly in square 4.

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Translate.transform problems (collision/Rigibody) 0 Answers

Transform not changing to correct target transform 0 Answers

Shrinking an Object 1 Answer

C# 2d Always Rotate Facing Gameobject 1 Answer

Error code CS0029. 1 Answer


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