Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 11 Next capture
2021 2022 2023
1 capture
11 Jun 22 - 11 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 BuzzardMercure · Jul 30, 2015 at 07:49 PM · scripting problemcoroutinelerp

Lerp coroutine not executing

I'm trying to slide an element to a new position. When 'changeState' executes, it starts the 'elementSlide' coroutine, but nothing happens. I've tried writing the coroutine a few different ways, but have ended up with the same problem.

 using UnityEngine;
 using System.Collections;
 
 public class MindManager : MonoBehaviour {
 
     //Variable to determine if the layer is active
     public bool currentlyActive = true;
 
     //Variable to determine if the layer is available
     public bool currentlyAvailable = true;
 
     //
     [System.Serializable]
     public struct bgPosScale
     {
         public float xpos;
         public float ypos;
         public float scaleFactor;
     }
 
     public bgPosScale[] bgOffset = new bgPosScale[3]; 
 
     public GameObject bgTarget;
     public float bgScale;
     public float transTime = 100f;
 
     //Enumerate the subsections of the Mind layer
     public enum SUBSTATE : int {TOP =0, HEAD = 1, LEFT = 2, RIGHT = 3,};
 
     public SUBSTATE subState = SUBSTATE.TOP;
 
     public void Start()
     {
 
     }
 
     public void changeState(int toState)
     {
 
         if (toState != (int)subState) //Only transition if state is not currently active
         {
             Vector3 startPos = bgTarget.transform.position;//Store BG element's current position
             Vector3 newPos = new Vector3(bgOffset[toState].xpos, bgOffset[toState].ypos,0);//Grab the desired position
 
             subState = (SUBSTATE)toState; //Set desired state to active state
 
             elementSlide(bgTarget, startPos, newPos, transTime); //Initiate coroutine
 
 
             //bgTarget.transform.position = new Vector3 (bgOffset[toState].xpos, bgOffset[toState].ypos,0);
             //bgTarget.transform.localScale = new Vector3(bgScale*bgOffset[toState].scaleFactor,bgScale*bgOffset[toState].scaleFactor,0);
         }
     
     }
 
     public IEnumerator elementSlide (GameObject target, Vector3 startPos, Vector3 newPos, float time)
     {
         float timePassed = 0f;
 
         while (timePassed < time) {
             target.transform.position = Vector3.Lerp (startPos, newPos, (timePassed / time));
             timePassed += Time.deltaTime;
             yield return null;
         }
     }
 
 
 
 }
 

 
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 Dave-Carlile · Jul 30, 2015 at 07:50 PM

You start a coroutine using StartCoroutine, so:

 StartCoroutine(elementSlide(bgTarget, startPos, newPos, transTime));


Comment
Add comment · Show 1 · 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 BuzzardMercure · Jul 30, 2015 at 08:15 PM 0
Share

facepalm

I've been so focused on the coroutine itself. Now I'm embarassed.

$$anonymous$$uch gratitude!

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

[HELP] How to make camera smooth change position while follow object? 1 Answer

C# | How to delay a method with parameters 2 Answers

How to start a Coroutine in another script? 1 Answer

object's children not moving with it when using a Lerp-ing coroutine 0 Answers

Unity freezing on Waitforsecond 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