How can I implement input movement? - unreal-engine4

I am new to UE and trying to make very simple game to learn the engine.
This is how the game looks
I want the player to be able to move the cube(PlayerPawn) left and right only.
This is my script to move the pawn.
But when I go left or right it also rotates. How can I fix this? How can I implement input movement while the pawn simulates physics?

You're applying floating pawn movement on a non floating object? That just doesn't seem right does it?
If you want to use custom movement just setup a collision component (BoxComponent in your case maybe?) And apply forced with SetForce/AddImpulse or SetLinearVelocity.
Also might be worth your time looking into the Character blueprint clasd that comes with lot's of premade movement capabilities

Related

Is there a way to have camera follow g-force in Unity 3D (versioon 2019.3.15f1)?

I am making a game where at one point the player flies a plane/spaceship, and was wondering if there is a way for the camera to move slightly up when the player flies down, and vice versa, same for left and right so that it might make it feel better to play, and slightly more realistic then just a static camera movement.
Thanks a lot !
PS: Beginner here, so sorry if it's an obvious answer...
You can use Unity Standard Assets script CameraFollowsPlayer (Not sure of the name but it is something like this) and you drag and drop your character to your new Camera. It should do the trick with the delay movements. Alternatively you could use Lerp and transform Cameras Position in LateUpdate() method.

How to make an object bend in the opposite direction as it moves into Unity

I need to move a 3D object like in the "Run sausage" game.
https://www.youtube.com/watch?v=CQa5PUlSfwk
There, as the character runs forward, its body kind of bends backwards, in the direction opposite to the movement.
In particular I do a simulation of a tornado in Unity, but when I want to go forward to the upper part of the tornado moved back, and after 1 second reaches the lower part ("legs")
Any suggestions would help me. Thank you
The movement like in the Sausage Run game can be achieved easily by using animator controller specifically Blend Tree. Watch this tutorial is you are not already familiar with these
https://www.youtube.com/watch?v=E-zQw4GabKw

Climb down ladder in 2D platformer game

For my game, the player character requires to climb up and down ladders those are placed in the gameplay area.
At present, I can able to climb up for my player character to climb down at present I don't have anyway. Because platform box collider applied with platform effector, so for the climb up, effector does not create any problem but now after reaching the top, it becomes solid platform so now I can't able to move downside.
For climbing up, I have followed this tutorial: How To Make 2D Ladders In Unity - Easy Tutorial
I am looking to implement some physics so I can reach downside to the ladder after reaching top.
You need 2 boolean variables isClimbingUp and isClimbingDown which depend on pressed key and a second ray, which will check -Vector2.up direction. Then just add one more 'else if' statement for down direction.
Yes, I have managed to solve this, and the game is published in the stores.
You can check using the below link:
Humpty Trumpty's Border Wall
This is my overall physics setup for the stair:
I have applied a trigger collider to my stair object and disable player gravity scale when the player within the stair.
Then after within the trigger enter and exist, I have done this:
Physics2D.IgnoreCollision(m_CapsuleCollider, myStair.platformCollider, false);
Disable collision between player and platform colliders when the player is within the stair.
I don't think, Platform Effect 2D becomes useful to me in this process but I didn't remove this to remain in the safer side.
So you have to keep a reference of the platform object which is attached to Stair.
I hope you will get a general idea to solve this problem.

How to create directional drag in Unity?

I'm developing a game in which you race in ships that are hovering above the ground. The problem is that they are really difficult to control because the have no friction other than the drag i set in Rigidbody component. Because of that steering is very unresponsive. Setting drag to really high values helps but it works in all directions and thats not what I want. The solution would be making the drag work only sideways so steering is easier, but going forward and backward is normal. Do you know how can I achieve this?
What's your code? Are you adding force by using rigidbody.AddForce? You know that it accepts a second parameter ForceMode.
For example:
rigidbody.addForce(Vector3.up, ForceMode.VelocityChange)
This wil add an instant force, ignoring it's mass. To see other ForceModes, look here :)

Dragging a Sprite (Cocos2D) while Chipmunk is simulating

I have a simple project built with Cocos2D and Chipmunk. So far it's just a Ball (body, shape & sprite) bouncing on the Ground (a static line segment at the bottom of the screen).
I implemented the ccTouchesBegan/Moved/Ended methods to drag the ball around.
I've tried both:
cpBodySlew(ballBody, touchPoint, 1.0/60.0f);
and
ballBody->p = cgPointMake(touchPoint.x,touchPoint.y);
and while the Ball does follow my dragging, it's still being affected by gravity and it tries to go down (which causes velocity problems and others).
Does anyone know of the preferred way to Drag an active Body while the physics simulation is going on?
Do I need somehow to stop the simulation and turn it back on afterwards?
Thanks!
Temporarily remove the body from the space.
If you want the object to have inertia when you release it, that's a different story. The cleanest way is to attach a fairly stiff spring between the ball and a temporary sensor body that moves under the control of your finger. When you let go with your finger, the ball will retain whatever kinematics it had while you were dragging it. Be sure not to remove the ball from the space in this case.
You aren't updating the velocity of the object when you aren't using cpBodySlew(). That is why it falls straight down.
A better way to do it is to use a force clamped pivot joint like the official demos do to implement mouse control. http://code.google.com/p/chipmunk-physics/source/browse/trunk/Demo/ChipmunkDemo.c#296