/// <summary> /// /// </summary> /// <param name="camera"></param> private void SetupCamera( Camera cam ) { // create a pivot at roughly the character's shoulder cameraPivot = cam.SceneManager.RootSceneNode.CreateChildSceneNode(); // this is where the camera should be soon, and it spins around the pivot cameraGoal = cameraPivot.CreateChildSceneNode( new Vector3( 0, 0, 15 ) ); // this is where the camera actually is cameraNode = cam.SceneManager.RootSceneNode.CreateChildSceneNode(); cameraNode.Position = cameraPivot.Position + cameraGoal.Position; cameraPivot.SetFixedYawAxis( true ); cameraGoal.SetFixedYawAxis( true ); cameraNode.SetFixedYawAxis( true ); // our model is quite small, so reduce the clipping planes cam.Near = 0.1f; cam.Far = 100; cameraNode.AttachObject( cam ); pivotPitch = 0; }
public override void CreateCamera() { // Create the camera camera = scene.CreateCamera( "PlayerCam" ); // NEW: create a node for the camera and control that instead of camera directly. // We do this because PCZSceneManager requires camera to have a node mCameraNode = scene.RootSceneNode.CreateChildSceneNode( "PlayerCamNode" ); // attach the camera to the node mCameraNode.AttachObject( camera ); // fix the yaw axis of the camera mCameraNode.SetFixedYawAxis( true ); camera.Near = 2; camera.Far = 1000; }