Comments (3)
That change was indeed a way to allow walking up a sloped one-way platform.
I'll have to give it some though to see if there is a clean way to handle
both or if sloped one-way platform support should be a boolean
configuration (seems like it is not very common).
Mike
On Sat, Jan 3, 2015 at 4:09 PM, astrobread [email protected] wrote:
If a one-way platform is placed just overhead of the character, they
cannot jump completely through it.To recreate place a one-way platform just above the player. They don't
need to be touching, but it has to be close enough so that the initial jump
velocity will collide them in the first frame of the jump.Expected result is that the player passes through the one-way platform,
then lands on it after the jump is complete. Observed result is that the
player travels most of the way through the platform, then their jump ends
much sooner than expected and they fall back to where they started.[image: onewayjumpsnap]
https://cloud.githubusercontent.com/assets/8303758/5604181/606c6696-9371-11e4-8000-2a6e8aedf0da.PNGThis issue can be resolved by modifying this line in
CharacterController2D.moveVertically:if (isGoingUp && !collisionState.wasGroundedLastFrame)
mask &= ~oneWayPlatformMask;If you remove the wasGroundedLastFrame condition the platform behaves as
expected. Was this condition included to allow one-way platforms with
slopes? Or is it for something else I'm not aware of?—
Reply to this email directly or view it on GitHub
#43.
from charactercontroller2d.
This is just from eyeballing the code so I could be missing something, but I don't think this change would impact one-way platform slopes.
There are no meaningful collisions with one-way platforms while ascending in MoveVertically(). It only casts rays from the top of the collider in this situation, so anything it hits has nothing to do with what you're walking across. When ascending, this function's only job is to prevent you from cracking your head against solid platforms.
What makes sloped one-way platforms work is already inside MoveHorizontally(), which uses similar logic to detect slopes from either kind of platform. Whereas the grounded check inside MoveVertically() only seems to prevent jumping onto one-way platforms
from charactercontroller2d.
You might be right. I'll do some rest with and without the check and make sure all is well.
On Jan 4, 2015, at 4:50 PM, astrobread [email protected] wrote:
This is just from eyeballing the code so I could be missing something, but I don't think this change would impact one-way platform slopes.
There are no meaningful collisions with one-way platforms while ascending in MoveVertically(). It only casts rays from the top of the collider in this situation, so anything it hits has nothing to do with what you're walking across. When ascending, this function's only job is to prevent you from cracking your head against solid platforms.
What makes sloped one-way platforms work is already inside MoveHorizontally(), which uses similar logic to detect slopes from either kind of platform. Whereas the grounded check inside MoveVertically() only seems to prevent jumping onto one-way platforms
—
Reply to this email directly or view it on GitHub.
from charactercontroller2d.
Related Issues (20)
- SpriteShape incompatible?
- OneWayPlatforms not detected on slopes
- License ShareAlike requirements HOT 1
- Seemingly random clipping into walls and ground.
- Enemies should use CC2D as well? HOT 1
- Time Scale & Target Frame HOT 1
- inconsistent grounding detection HOT 4
- License prohibits using this asset in any commercial game HOT 1
- When pressing down on one way platforms doesn't fall
- "Not Grounded" when descending a slope towards a flat surface. HOT 1
- Unwanted collision for lower oneWayPlatforms HOT 1
- Character springs very high into the air
- Launched in opposite direction when colliding exactly on an edge
- Call to Move should be moved from Update to FixedUpdate
- Any plan for ECS version?
- warpToGrounded doesn't seem to be used? HOT 1
- when you run and jump it can push you back when you hit the floor or the ground HOT 1
- Elevator glitch? HOT 2
- Warp to ground freeze Unity HOT 2
- support polygon collider
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from charactercontroller2d.