- Home /
How to move a player with rigidBody2d on a platform that also has a rigidbody2d
Hello my 2d game has a top down perspective. i have a platform in my game where the player must be able to stand on and move together with it. this platform itself also contains a rigidbody2d. this is because later on the player will be able to control this platform while standing on it. How can i make it so that when the player is standing on the platform the platform takes the player with him. and that the player can also move while standing on the platform ?
i found solutions where you set the player as a child of the platform but in these cases the platform is being moved by setting the position and not with Rigidbody2D.MovePosition. in my game the platform moves with Rigidbody2D.MovePosition. I tried it but it did not work because of this. the player just stands still while the platform moves.
Answer by dolfijn3000 · May 21 at 04:30 PM
Ok i solved my own problem? this is my code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float moveSpeed = 5f;
public Rigidbody2D rb;
public Rigidbody2D platform;
public Camera cam;
Vector2 movement;
Vector2 mousePos;
// Update is called once per frame
void Update()
{
movement.x = Input.GetAxisRaw("Horizontal");
movement.y = Input.GetAxisRaw("Vertical");
mousePos = cam.ScreenToWorldPoint(Input.mousePosition);
}
Vector2 pos;
private void FixedUpdate()
{
pos = pos + movement;
rb.MovePosition(platform.position + pos * moveSpeed * Time.fixedDeltaTime);
Vector2 lookDir = mousePos - rb.position;
float angle = Mathf.Atan2(lookDir.y,lookDir.x) * Mathf.Rad2Deg - 90f;
rb.rotation = angle;
}
}
Your answer
Follow this Question
Related Questions
Moving Platform Troubles 0 Answers
Character Control stuck in parent movement. 0 Answers
Moving Platform Moves instantly. 1 Answer
Stopped Rigidbody2D still applying motion to carried objects? 0 Answers