I feel stupid to have to ask for help on this.
I have a player object with a capsule collider (I don’t want to use the character controller because I don’t want gravity). I also added a RigidBody component and marked it as Kinematic and turned off gravity.
I have other static objects in my scene with primitive colliders but no rigidbody.
When I move my player I want it to collide with the static objects and NOT PASS THROUGH. I’d like it to slide around the colliders it runs into, like you would expect a player to do when colliding with something at an angle.
I don’t really care about the collision events at this time, I only want to prevent the player from walking through stuff. What am I missing?
You need to have a non-kinematic rigidbody to enable physics of any kind! A kinematic rigidbody will not bounce off of other objects, because it is assumed that it is not being moved in any physical way. If you are moving your object just using transform.Translate or related methods, it will never interact with other colliders unless there is also a non-kinematic rigidbody on the same object (in which case you shouldn’t be using transform.Translate anyway). If you don’t want gravity, you can just turn off ‘useGravity’ on your rigidbody, or in a more general way, you can set ‘Gravity’ to (0, 0, 0) in the physics settings to create a zero-gravity environment.
Also- in what way do Character Controllers have gravity? You have to manually code that in! (It’s part of what annoys me about them…)