[SOLVED] Slowly falling through plane

There is a plane entity in my project that, for some reason, when I walk on it, will cause me to fall through slowly. I can’t find any difference between it and the other planes. What is the issue?
Project: PlayCanvas | HTML5 Game Engine
The entity that is an issue is called planeHall.
Edit: After I open the door with the key, for some reason I am able to walk through walls too? Seems that it’s an issue with player collision, and that it has something to do with the objectPicker.js script.

There is a seperate although similar issue that I am having, but I suspect they have the same solution. That topic is here: Slowly falling through plane
Once you open the door, some of the wall collisions disable, and walking onto the floor outside of the door will cause you to slowly fall through it. Sometimes the collisions turn back on, and I am currently trying to figure out what causes that. Since it only happens when the door opens, I believe it must have something to do with my objectPicker.js script.
Project: PlayCanvas | HTML5 Game Engine
To open the door, go over to the table and pick up the key with E. There is an almost invisible reticle that you can center the key on (I am working on finding a better one). Then go over to the door and open it with E (You’ve got to be close enough to it to open it).

What are your thoughts? Is there any possible fix?

Hi @cyron! I can’t find the cause of this. I would like to ask @LeXXik to look into this as well.

Hi,

Well, I haven’t studied the code in details, but noticed a couple of things:

  1. You are controlling a player by applying a linearVelocity on a rigidbody. You want to make sure whatever that value is, that it is not pushing the rigidbody through a surface. Any reason for that math just to find a movement direction?

  2. Contact normal could be pointing either up or down. If you use it in your movement math, you should consider it.

2 Likes

Hi cyron,

One of the things I can see is that your floor and planeHall collision Y: .01. This is very thin. Also your player entity is very narrow as compared to others I have used. I think this is the reason for what you are seeing. Make your player collision a bit bigger. Maybe

image

My floors are usually.

image

I could not fork your project for some reason. I wanted to test my theory but could not.

Update: I did finally fork your project. Very strange reaction. I changed the size of everything as described above. I can walk through the door quickly and walk on the other plane. If I go slowly then I fall through the floor in between the door and other floor. I am not sure what going on. Maybe it’s because there are two plane entities together. Sorry butmaybe someone else will be able to solve this.

1 Like

@LeXXik interesting, but then why would it only start happening after I open the door?
Edit: Yeah, I just disabled the door entity and everything works fine. I don’t understand how this could be the source of the issue because all the code is doing is disabling the closed door entity and enabling the open door entity.

I’m currently investigating this issue and the problem occurs for me even after the door has been disabled. Where in the code, if at all, are you applying downward force on the player capsule?

1 Like

There shouldn’t be anything in the code that applies downward force on the player. That did remind me though that I had the downward force in the physics setting set to -40, so I set it back to -9.8, but that still did not help. Also, when you disabled the door, did you only disable the closed_door entity or did you disable the entire template? It seems to work when the whole template is disabled (which is what is being done in the code).

OK, I think I may have figured out exactly where the problem lies.
I disabled both the woodenDoor template and the open_door entity, and it works. If I go and pick up the key, it doesn’t work anymore. I have absolutely no idea why the key is causing this, or how. But it is.

We’ve taken a look at the code and it seems the issue lies in line 54 of objectPicker.js. You’re calling this.pickedEntity.setRotation(), but note that you don’t actually pass a rotation value. This causes issues with the physics engine, which leads to the floor clipping you’re experiencing. Comment out, remove or fix the call and it should work fine.

5 Likes

No way!! It worked!! Thanks so much!

1 Like