• 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 gbagiryan · Aug 25, 2020 at 03:52 PM · movementcharactercontrollercollidersshakingelevator

Character shaking on moving platform (elevator)

Hey guys. Could someone help me? Whats the best way to move something like an elevator? I tried many ways but when my Character controller is standing on a rising platform he starts to shake (i'm guessing the elevator collider hits characters collider). Some say to parent the player from the elevetor onTriggerEnter but in my case it does nothing. I use standard Character controller for the player with applying vertical velocity for gravity in .Move() method I also use a SpereCast for ground checking, the elevator model only has a generated collider the one you get when importing an fbx model and right now I use Vector3.MoveTowards to move it up and down. Any help would be great thanks in advance.

Also, after some experimentation I found that if my vertical velocity (gravity) is equal to 0 when I'm grounded, character just falls through the elevator, but if Y velocity isn't 0 (I have it at 6f) he doesn't fall but the stuttering occurs...

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 ancientpixel · Dec 04, 2020 at 01:05 AM

I have the exact same problem, a shame there are no answers yet. Actually that's true for most threads where it seems that that must have been solved before.

I ended up trying to get the difference between my elevator position and last frame position and add that to whatever enters the trigger- but it always returns 0. That may be an hierarchical problem. Currently I don't get why it would not calculate the difference right, but I'll look at it again tomorrow.

[TOMORROW EDIT]

ok, ive got half of it - I used an empty with Character Controller and had a Child with a capusle Collider and Rigidbody so i could bump into physic objects like boxes and stuff, that was part of the problem. Now I moved the Collider and Rigidbody to the empty where the Character Controller is and in the Elevator Sticky Zone I used the difference position as a kind of velocity for everything that is on the elevator:

 void Update(){
     Vector3 dif = transform.position - previousPos;
 
     foreach (GameObject o in objs) {
         if(o.GetComponent<CharacterController>() != null) {
             o.GetComponent<CharacterController>().Move(dif);
         } else {
             o.transform.position += dif;
         }
     }
 
     previousPos = new Vector3(transform.position.x, transform.position.y, transform.position.z);
 }

objs is a list of gameObjects that gets filled and emptied on TriggerEnter and Exit @gbagiryan

This works for left, right and up movement, the down movement is somewhat jerky again, I suspect bc of gravity or the antificial gravity in the character controller - with 0 gravity it works fine. 0 gravity messes up how you walk over slopes though, so you need something that zeroes it on the elevator.

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.

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

286 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

Related Questions

Character Will Not Move from Spot (At All) 0 Answers

CharacterController.Move isn't setting collision flags 1 Answer

How can I adapt this character controller movement script to allow movement in mid air? 0 Answers

Wall Collisions with manual position update 0 Answers

Grounded and pressing "jump" not working? 1 Answer

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