ok im doing a 3D platformer that is in the first person i am having some errors with my scripts and im not sure what exactly it is
Here is the entire script
var walkSpeed = 6.0;
var runSpeed = 11.0;
// If true, diagonal speed (when strafing + moving forward or back) can't exceed normal move speed; otherwise it's about 1.4 times faster
var limitDiagonalSpeed = true;
// If checked, the run key toggles between running and walking. Otherwise player runs if the key is held down and walks otherwise
// There must be a button set up in the Input Manager called "Run"
var toggleRun = false;
var jumpSpeed = 8.0;
var gravity = 20.0;
// Units that player can fall before a falling damage function is run. To disable, type "infinity" in the inspector
var fallingDamageThreshold = 10.0;
// If the player ends up on a slope which is at least the Slope Limit as set on the character controller, then he will slide down
var slideWhenOverSlopeLimit = false;
// If checked and the player is on an object tagged "Slide", he will slide down it regardless of the slope limit
var slideOnTaggedObjects = false;
var slideSpeed = 12.0;
// If checked, then the player can change direction while in the air
var airControl = false;
// Small amounts of this results in bumping when walking down slopes, but large amounts results in falling too fast
var antiBumpFactor = .75;
// Player must be grounded for at least this many physics frames before being able to jump again; set to 0 to allow bunny hopping
var antiBunnyHopFactor = 1;
private var moveDirection = Vector3.zero;
private var grounded = false;
private var controller : CharacterController;
private var myTransform : Transform;
private var speed : float;
private var hit : RaycastHit;
private var fallStartLevel : float;
private var falling = false;
private var slideLimit : float;
private var rayDistance : float;
private var contactPoint : Vector3;
private var playerControl = false;
private var jumpTimer : int;
function Start () {
***controller = GetComponent(CharacterController);
***myTransform = transform;
***speed = walkSpeed;
***rayDistance = controller.height * .5 + controller.radius;
***slideLimit = controller.slopeLimit - .1;
***jumpTimer = antiBunnyHopFactor;
***oldPos = transform.position;
}
function FixedUpdate() {
***var inputX = Input.GetAxis("Horizontal");
***var inputY = Input.GetAxis("Vertical");
***// If both horizontal and vertical are used simultaneously, limit speed (if allowed), so the total doesn't exceed normal move speed
***var inputModifyFactor = (inputX != 0.0 inputY != 0.0 limitDiagonalSpeed)? .7071 : 1.0;
***
***if (grounded) {
*******var sliding = false;
*******// See if surface immediately below should be slid down. We use this normally rather than a ControllerColliderHit point,
*******// because that interferes with step climbing amongst other annoyances
*******if (Physics.Raycast(myTransform.position, -Vector3.up, hit, rayDistance)) {
***********if (Vector3.Angle(hit.normal, Vector3.up) > slideLimit)
***************sliding = true;
*******}
*******// However, just raycasting straight down from the center can fail when on steep slopes
*******// So if the above raycast didn't catch anything, raycast down from the stored ControllerColliderHit point instead
*******else {
***********Physics.Raycast(contactPoint + Vector3.up, -Vector3.up, hit);
***********if (Vector3.Angle(hit.normal, Vector3.up) > slideLimit)
***************sliding = true;
*******}
*******// If we were falling, and we fell a vertical distance greater than the threshold, run a falling damage routine
*******if (falling) {
***********falling = false;
***********if (myTransform.position.y < fallStartLevel - fallingDamageThreshold)
***************FallingDamageAlert (fallStartLevel - myTransform.position.y);
*******}
*******
*******// If running isn't on a toggle, then use the appropriate speed depending on whether the run button is down
*******if (!toggleRun)
***********speed = Input.GetButton("Run")? runSpeed : walkSpeed;
*******// If sliding (and it's allowed), or if we're on an object tagged "Slide", get a vector pointing down the slope we're on
*******if ( (sliding slideWhenOverSlopeLimit) || (slideOnTaggedObjects hit.collider.tag == "Slide") ) {
***********var hitNormal = hit.normal;
***********moveDirection = Vector3(hitNormal.x, -hitNormal.y, hitNormal.z);
***********Vector3.OrthoNormalize (hitNormal, moveDirection);
***********moveDirection *= slideSpeed;
***********playerControl = false;
*******}
*******// Otherwise recalculate moveDirection directly from axes, adding a bit of -y to avoid bumping down inclines
*******else {
***********moveDirection = Vector3(inputX * inputModifyFactor, -antiBumpFactor, inputY * inputModifyFactor);
***********moveDirection = myTransform.TransformDirection(moveDirection) * speed;
***********playerControl = true;
*******}
*******// Jump! But only if the jump button has been released and player has been grounded for a given number of frames
*******if (!Input.GetButton("Jump"))
***********jumpTimer++;
*******else if (jumpTimer >= antiBunnyHopFactor) {
***********moveDirection.y = jumpSpeed;
***********jumpTimer = 0;
*******}
***}
***else {
*******// If we stepped over a cliff or something, set the height at which we started falling
*******if (!falling) {
***********falling = true;
***********fallStartLevel = myTransform.position.y;
*******}
*******
*******// If air control is allowed, check movement but don't touch the y component
*******if (airControl playerControl) {
***********moveDirection.x = inputX * speed * inputModifyFactor;
***********moveDirection.z = inputY * speed * inputModifyFactor;
***********moveDirection = myTransform.TransformDirection(moveDirection);
*******}
***}
***// Apply gravity
***moveDirection.y -= gravity * Time.deltaTime;
***// Move the controller, and set grounded true or false depending on whether we're standing on something
***grounded = (controller.Move(moveDirection * Time.deltaTime) CollisionFlags.Below) != 0;
}
function Update () {
***// If the run button is set to toggle, then switch between walk/run speed. (We use Update for this...
***// FixedUpdate is a poor place to use GetButtonDown, since it doesn't necessarily run every frame and can miss the event)
***if (toggleRun grounded Input.GetButtonDown("Run"))
*******speed = (speed == walkSpeed? runSpeed : walkSpeed);
}
// Store point that we're in contact with for use in FixedUpdate if needed
function OnControllerColliderHit (hit : ControllerColliderHit) {
***contactPoint = hit.point;
}
// If falling damage occured, this is the place to do something about it. You can make the player
// have hitpoints and remove some of them based on the distance fallen, add sound effects, etc.
function FallingDamageAlert (fallDistance : float) {
***Debug.Log ("Ouch! Fell "*+ fallDistance + "*units!"); **
}
Here is where unity is saying the error is at
**controller = GetComponent(CharacterController);
Any help would be greatly helpful