- Home /
Player object falling through game environment, collision not detected with ground
Hello everyone,
After using the tutorial at http://www.youtube.com/watch?v=IkVOstqBeGk and successfully making a sphere move around on a stretched cube, reused the same scripts for an .fbx model of a character that I imported from Blender. The .fbx model has an armature and a test animation that plays automatically on startup. The character model is in a room that I modeled in Blender and imported as a .dae (COLLADA) file (either that or an fix file, I can't remember what I imported it as). I also set my Main Camera to follow my character model. The camera works fine, but the character immediately falls through the room object and falls to infinity in the scene. The same thing happens if I put a cube game object in the scene under the room. Somehow, there's no collision detection occurring with my imported meshes, and only game objects created in Unity seem to be colliding with each other.
For the record, here is my PlayerMovement.js script (it's from the YouTube tutorial):
var speed = 3.0;
var rotateSpeed = 3.0;
function Update ()
{
var controller : CharacterController = GetComponent(CharacterController);
// Rotate around y - axis
transform.Rotate(0, Input.GetAxis ("Horizontal") * rotateSpeed, 0);
// Move forward / backward
var forward = transform.TransformDirection(Vector3.forward);
var curSpeed = speed * Input.GetAxis ("Vertical");
controller.SimpleMove(forward * curSpeed);
}
@script RequireComponent(CharacterController)
And the Main Camera object has SmoothFollow.js as a component, just as the player character has PlayerMovement.js attached.
$$anonymous$$ake sure that you have "isTrigger" unchecked in the rooms inspector.
Thanks for the tip. For some stupid reason, I forgot to add a mesh collider to my room. Adding it without checking the trigger flag fixed the problem.