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
0
Question by Bryan Lee · Nov 23, 2012 at 08:01 PM · yielddelaystartcoroutine

I'd like to move a cube without delay.(C#)

Hello, guys.

(I'm not good at English well. Please understand me.)

Now I'm studying about moving a cube. I found one way to do this with StartCoroutine() and yield return new WaitForSeconds() codes. But I'd like to know there is another way to move a cube. The most important thing for me is 'No delay'. If there is a way to move a cube without delay(except count seconds), please teach me. Below is my code. Thanks!!

 =======================================================
 using UnityEngine;
 using System.Collections;
 
 public class Manager : MonoBehaviour {
     
     public int state=0;
     
     // Use this for initialization
     void Start () {
     
     }
     
     // Update is called once per frame
     void Update () {
     
     switch(state) // state = 4 -> wait
         {        
         case 0:
             StartCoroutine(forward());
             break;
         case 1:
             StartCoroutine(backward());
             break;
         case 2:
             StartCoroutine(left());
             break;
         case 3:
             StartCoroutine(right());
             break;
         default:
             break;
         }
     }    
     
     public IEnumerator forward()
     {
         state = 4;
         iTween.MoveTo(GameObject.Find("Cube").gameObject, iTween.Hash( "y", 1, "easeType", iTween.EaseType.easeInOutSine));
         yield return new WaitForSeconds(2.0f);        
         state = 1;        
     }
     
     public IEnumerator backward()
     {
         state = 4;
         iTween.MoveTo(GameObject.Find("Cube").gameObject, iTween.Hash( "y", -1, "easeType", iTween.EaseType.easeInOutSine)); 
         yield return new WaitForSeconds(2.0f);
         state = 2;
     }
     public IEnumerator left()
     {
         state = 4;
         iTween.MoveTo(GameObject.Find("Cube").gameObject, iTween.Hash( "z", 1, "easeType", iTween.EaseType.easeInOutSine)); 
         yield return new WaitForSeconds(2.0f);
         state = 3;
     }
     public IEnumerator right()
     {
         state = 4;        
         iTween.MoveTo(GameObject.Find("Cube").gameObject, iTween.Hash( "z", -1, "easeType", iTween.EaseType.easeInOutSine)); 
         yield return new WaitForSeconds(2.0f);        
         state = 0;
     }    
 }
 
 =======================================================
Comment
Add comment · Show 5
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 Montraydavis · Nov 23, 2012 at 06:36 PM 0
Share

Just remove the yield return new WaitForSeconds ? --This causes it to pause for x seconds, which seems to NOT be what you want .

avatar image Bryan Lee · Nov 23, 2012 at 09:15 PM 0
Share

I've already tried your suggestion. But the cube doesnt move even one pixel.

avatar image Montraydavis · Nov 23, 2012 at 09:16 PM 0
Share

And have you tried change the 2.0f to something much smaller like 0.01 ? It would be virtually impossible to distinguish a 0.001 second pause.

There really isn't too much I can say since I have never used iTween before . . . But perhaps I can write a script that does not use iTween?

avatar image greatestprez · Nov 23, 2012 at 09:23 PM 0
Share

yea, you should probably write a script that doesn't use itween

avatar image darthbator · Nov 24, 2012 at 12:16 AM 0
Share

Have you tried changing those waits to

yield return null

?

0 Replies

· Add your reply
  • Sort: 

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

13 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

Related Questions

C# WaitForSeconds doesn't seem to work ?? 2 Answers

delayed function problem 1 Answer

Make delay for spawn 3 Answers

Time Delay isnt working 1 Answer

How to Delay A Ball shooting script 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