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 Chris100100 · Aug 24, 2017 at 08:24 PM · scripting problembeginnerbehaviourunexpectedtiming-issue

Respawn not behaving as intended

Hello, I am new to scripting and I've written a bit of code that should serve as a respawn for the vehicle AI.

The script teleports successfully and properly detects whether in bounds or out, yet has some issues with the timing, it just seems to want to teleport when it wants.

I've attached my code below, would anyone help me figure out what might be going on and suggest ways to repair it?

Thanks in advance!

 #pragma strict
 
 var TelePosition : Transform; //The position the AI will return to
 var canTeleport = false; //determines if AI is out of play area
 var secondsToWait = 9; //seconds to wait before determining whether to teleport
 var waited = false; //have the seconds to wait passed?
 
     
     function OnTriggerExit(other: Collider) {
     if (other.tag == "aiArea" ) //if the AI has left the play area
     {
         waited = false;//the ai just left, it has not waited yet
         canTeleport = true;//since the ai is out of bounds, it is allowed to teleport
         waitFirst();//wait and inform when ai has waited (wated will be set to true)
         
         if (canTeleport && waited )//the ai is out of bounds and has waited 
         //(if can teleport has since changed, this won't run since it is no longer needed.)
         {
             transform.position = TelePosition.position;//respawn the ai with specific rot/pos
             transform.rotation = TelePosition.rotation;
             waited = false; //the ai is no longer out of bounds, it is not waiting
             canTeleport = false; //the ai is in bounds, it has no need to teleport
         }
     }
 }
     //if at any time the ai returns in bounds,
     //remove teleport abilities (overiding priviledge from above)
     
     function OnTriggerEnter(other: Collider) {
         if (other.tag == "aiArea" ) { //the ai has returned to the playing area
             canTeleport = false; //since the ai has returned, there is no need to teleport
         }
     }
     
  function waitFirst()
  {
      yield WaitForSeconds (secondsToWait); //waits for specified amount of time
     waited = true; //the ai has waited
  }
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 FortisVenaliter · Aug 24, 2017 at 08:54 PM

WaitFirst will never wait the way you have it written now. You would need to move the code to a coroutine function and use a yield statement when calling it. Otherwise it just returns instantly and the rest of the code executes just as quickly.

I recommend reading up on a coroutine tutorial. Asynchronous programming really isn't something you should use without understanding it fully.

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

116 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

Related Questions

How to implement tokenization of game characters? 1 Answer

I really need a JumpPad script for a JumpPad in unity 2D 0 Answers

Larger Than Smaller than not working 1 Answer

Component goes away on play? 1 Answer

a way to predict players position to be able to be hit by projectiles 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