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 dragonking300 · Jul 24, 2017 at 04:54 AM · c#newbielerping

My object now lerps but it only lerps once

I thought I finaly cracked the code but now it just only lerps once sigh

 using UnityEngine;
 using System.Collections;
 
 public class BasicEnemyAiV2 : MonoBehaviour {
 
     public GameObject Player;
     public Vector3 FirstLerpPoint;
     private Vector3 FinalLerpPoint;
     public float Timer;
     public float TimerStart;
     public float DistanceInRay;
     public float speed;
     public float LerpTimer;
     private bool OneTimeExecution = true;
 
 
     static private Dash PlayerMovementScript;
 
     void Start ()
     {
         Player = GameObject.FindGameObjectWithTag("Player");
         TimerStart = Timer;
         PlayerMovementScript = Player.GetComponent<Dash>();
     }
     public Vector3 PlayerNewPosition;
     public bool ThePlayerIsMoving;
     // Update is called once per frame
     void Update ()
     {
 
         ThePlayerIsMoving = PlayerMovementScript.IsMoving;
         PlayerNewPosition = PlayerMovementScript.newPosition;
         Debug.Log(Vector3.Distance(FirstLerpPoint, FinalLerpPoint));
         if (Timer <= 0)
         {
             if (ThePlayerIsMoving && OneTimeExecution == true)
             {
                 Vector3 rayDir = PlayerNewPosition - transform.position;
                 Ray ray = new Ray(transform.position, rayDir);
                 FirstLerpPoint = ray.origin + (ray.direction * DistanceInRay);
                 Debug.DrawRay(transform.position, rayDir, Color.black, 3);
                 FinalLerpPoint = PlayerNewPosition;
                 StartCoroutine("LerpToPos");
                 OneTimeExecution = false;
             }
             else if (OneTimeExecution == true)
             {
                 Vector3 rayDir = Player.transform.position - transform.position;
                 Ray ray = new Ray(transform.position, rayDir);
                 FirstLerpPoint = ray.origin + (ray.direction * DistanceInRay);
                 Debug.DrawRay(transform.position, rayDir, Color.black, 3);
                 FinalLerpPoint = PlayerNewPosition;
                 StartCoroutine("LerpToPos");
                 OneTimeExecution = false;
             }
         }
         else
         {
             Timer -= Time.deltaTime;
         }
     }
     private IEnumerator LerpToPos()
     {
         while(Vector3.Distance(FirstLerpPoint, FinalLerpPoint) >= 4)
         {
             LerpTimer += Time.deltaTime;
             transform.position = FirstLerpPoint;
             FirstLerpPoint = Vector3.Lerp(FirstLerpPoint, FinalLerpPoint, LerpTimer * speed);
             yield return null;
         }
         Timer = TimerStart;
         LerpTimer = 0;
     }
 }


Comment
Add comment · Show 1
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 NoseKills · Jul 24, 2017 at 06:20 AM 0
Share

Have you done any debugging? Does the execution ever enter the while loop in the coroutine? What is th e value of`LerpTimer * speed` in your Lerp call?

As a side note, even though StartCoroutine("LerpToPos"); should work perfectly fine, I'd recommend using the IEnumerator overload of it as default (when there's nothing forcing you to use the string version). This way the compiler can help you in case you made a spelling mistake etc.

2 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by dragonking300 · Jul 24, 2017 at 07:21 AM

Unity crashed and now everything works(Just minor changes) wow.

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
avatar image
0

Answer by Kishotta · Jul 24, 2017 at 05:29 AM

The problems are in your coroutine:

 private iEnumerator LerpToPos() {
     float lerpTimer = 0f;
     // This distance will ALWAYS be greater than or equal to zero, never negative
     while (Vector3.distance (transform.position, FinalLerpPoint) > 0) { 
         lerpTimer += Time.deltaTime;
         // Lerp the transform's position instead of your endpoints
         transform.position = Vector3.Lerp (FirstLerpPoint, FinalLerpPoint, lerpTimer * speed);
         // Wait for the next frame before you proceed
         yield return new WaitForEndOfFrame ();
     }
 }
Comment
Add comment · Show 3 · 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 dragonking300 · Jul 24, 2017 at 05:58 AM 0
Share

Copied your coroutine changes exactly(fixed your spelling errors) but it still functions exactly the same way

avatar image Kishotta dragonking300 · Jul 24, 2017 at 06:08 AM 0
Share

Have you checked that your FirstLerpPoint and FinalLerpPoint are where you expect them to be?

avatar image dragonking300 Kishotta · Jul 24, 2017 at 07:17 AM 0
Share

actually for some reason my unity crashed I reloaded it and now it works.... buuut it only lerps towards the player position once :I

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

357 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 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 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

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

The enemy movement script I'm modeling after my player's isn't working. 1 Answer

Scrollrect snap laggy on mobile 0 Answers

Lerp not moving 2D object correctly 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