I am new to Unity. I made a person which is a few rectangles for feet, cylinder for body, and a sphere for head. I wrote some code to make him walk around and rotate. My floor is a long, wide cube. I put another cube in the air with rigid body added. When the game started the cube falls the floor as expected.
Here are two things that are really weird that are happening.
- When I add Character Collider to my person it has no effect. He can walk right off the floor and not fall. When I add rigid body to my person he wobbles and falls over (very odd).
- I can walk right through my solid cube that I made. All my shapes have the default mesh collider.
I just can’t figure out what is going on.
You need to freeze rotation on the rigid body and you probably aren’t moving your character properly.
this.transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime * Input.GetAxis(vertical));
this.transform.Rotate(0, Input.GetAxis(horizontal) * rotateSpeed, 0);
This is my code to move my character. See anything that doesn’t look correct?
No need to use this.transform, just transform will do, however that wont effect you much. Try rearranging the parenting of your objects, and making sure your collider and rigid body settings are correct.
I changed it to a Character Controller, but gravity does not seem to effect it at all. 
Could you post some screenshots of the heiarchy/positioning?