• 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 /
  • Help Room /
avatar image
0
Question by Kanassa · Jul 05, 2020 at 04:55 PM · movementcharacter movement

Itween Player Model Vibrates

Hey there!

Recently, I used Itween to help restrict player movement, the player runs around a set path and can only go back and forth. However, I found that when I start the game, the player model is stuck vibrating on the spot. Through various combinations of turning off other components and whatnot, I narrowed the problem down to the Itween script, more specifically the 'MoveCharacter' section, but I can't figure it out.

 using UnityEngine;
 using System.Collections;
 
 public class ItweenController : MonoBehaviour
 {
     public Transform[] controlPath;
     public Transform character;
     public enum Direction { Forward, Reverse };
 
     public float pathPosition = 0;
     public RaycastHit hit;
     public float speed = 0.5f;
     public float rayLength = 5;
     public Direction characterDirection;
     public Vector3 floorPosition;
     public float lookAheadAmount = .02f;
     public float ySpeed = 0;
     public float gravity = .5f;
     public float jumpForce = .12f;
     public uint jumpState = 0; //0=grounded 1=jumping
 
     void OnDrawGizmos()
     {
         iTween.DrawPath(controlPath, Color.blue);
     }
 
 
     void Start()
     {
         foreach (Transform child in character)
         {
             child.gameObject.layer = 2;
         }
     }
 
 
     void Update()
     {
         DetectKeys();
         FindFloorAndRotation();
         MoveCharacter();
         //MoveCamera();
     }
 
 
 
     void DetectKeys()
     {
         //forward path movement:
         if (Input.GetKeyDown("right"))
         {
             characterDirection = Direction.Forward;
         }
         if (Input.GetKey("right"))
         {
             pathPosition += Time.deltaTime * speed;
         }
 
         //reverse path movement:
         if (Input.GetKeyDown("left"))
         {
             characterDirection = Direction.Forward;
         }
         if (Input.GetKey("left"))
         {
             float temp = pathPosition - (Time.deltaTime * speed);
             if (temp < 0)
             {
                 pathPosition = 1;
             }
             else
             {
                 pathPosition -= (Time.deltaTime * speed);
             }
         }
 
         //jump:
         if (Input.GetKeyDown("space") && jumpState==0) {
             ySpeed-=jumpForce;
             jumpState=1;
         }
     }
 
 
     void FindFloorAndRotation()
     {
         float pathPercent = pathPosition % 1;
         Vector3 coordinateOnPath = iTween.PointOnPath(controlPath, pathPercent);
         Vector3 lookTarget;
 
         //calculate look data if we aren't going to be looking beyond the extents of the path:
         if (pathPercent - lookAheadAmount >= 0 && pathPercent + lookAheadAmount <= 1)
         {
 
             //leading or trailing point so we can have something to look at:
             if (characterDirection == Direction.Forward)
             {
                 lookTarget = iTween.PointOnPath(controlPath, pathPercent + lookAheadAmount);
             }
             else
             {
                 lookTarget = iTween.PointOnPath(controlPath, pathPercent - lookAheadAmount);
             }
 
             //look:
             character.LookAt(lookTarget);
 
             //nullify all rotations but y since we just want to look where we are going:
             float yRot = character.eulerAngles.y;
             character.eulerAngles = new Vector3(0, yRot, 0);
         }
 
         if (Physics.Raycast(coordinateOnPath, -Vector3.up, out hit, rayLength))
         {
             Debug.DrawRay(coordinateOnPath, -Vector3.up * hit.distance);
             floorPosition = hit.point;
         }
     }
 
 
     void MoveCharacter()
     {
         //add gravity:
         ySpeed += gravity * Time.deltaTime;
 
         //apply gravity:
         character.position = new Vector3(floorPosition.x, character.position.y - ySpeed, floorPosition.z);
 
         //floor checking:
         if (character.position.y < floorPosition.y)
         {
             ySpeed = 0;
             jumpState = 0;
             character.position = new Vector3(floorPosition.x, floorPosition.y, floorPosition.z);
         }
     }
 
 
     void MoveCamera()
     {
         iTween.MoveUpdate(Camera.main.gameObject, new Vector3(character.position.x, 2.7f, character.position.z - 5f), .9f);
     }
 }
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

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.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

266 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

Related Questions

How do i move my character in a direction that is not based on the character facing direction? 0 Answers

How to make changing direction in my FPS game less jerky? 3 Answers

Why is root motion reduced once I apply the animation? 0 Answers

Jump and movement doesn't works simultaneously 1 Answer

Script problems c# 0 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges