I have a game object (RigidBody) that levitates when moving forward. I also make it tilt slightly forward when moving. The issue is that whenever the object is moving with the tilt, it has a tendency of moving into the ground.
I want to know how it would be possible to make the object continue moving forward and levitating while tilting and not run into the ground.
If its falling to the ground.:
Check weather the Use Gravity field is not selected.
If that’s not the case, and it should collide with the ground than use a collider on the rigidbody as well as the ground.
if you trying to ask something else then explain the problem further.
Hey guys. Thanks for your replies. Sorry for not getting back to you sooner: we took a break for the holidays.
Here is our current code, which we help will make it easier for you to understand our current scenario:
private void MovingForward()
{
Vector3 movement = transform.forward * m_MovementInputValue * m_Speed * Time.deltaTime;
rb.position += movement;
rb.MovePosition(position: rb.position);
}
private void LeanForward()
{
float lean;
m_leaning = true;
if (m_leanForwardAngle < 20f)
{
lean = 1 * 50f * Time.deltaTime;
m_leanForwardAngle += lean;
transform.Rotate(Vector3.right * lean, Space.Self);
}
}
private void Levitate(int currentState)
{
Vector3 levitate = Vector3.zero;
float levitate_f = 3f;
if (currentState == 0)
{
if (m_levitatePressure < m_maxLevitateHeight)
{
levitate = transform.up * m_LevitateSpeed * Time.deltaTime;
m_levitatePressure += m_LevitateSpeed * Time.deltaTime;
rb.useGravity = false;
rb.MovePosition(rb.position + levitate);
}
else
{
m_levitatePressure = m_maxLevitateHeight;
}
}
else
{
rb.useGravity = true;
m_levitatePressure = 0f;
}
}
Based on our defined states, our character levitates and tilts slightly when moving forward. You can clearly see what the code is for each action (“Move Forward”, “Tilt Forward” and “Levitate”). Let us assume our character is moving to the right and that the ground is a staight line. If we levitate and move forward, our character is moving to the right and levitating properly. However, as soon as we add the tilting, our character’s angle with respect to the ground changes and it starts moving into the ground instead. See the attached picture. [131309-diagram.jpg|131309]
Eventually we would want this to work with a non-level ground: that is, going up a hill, etc.
Thanks!