- Home /
Error: "Expressions in statements must only be executed for their side-effects"
Help!
im using the tornadotwins's tutorial on how to make a video game #5.
And i'm almost done, but i got an error
Assets/Standard Assets/Character Controllers/Sources/Scripts/CharacterMotor.js(94,77): BCE0034: Expressions in statements must only be executed for their side-effects.
/ ThirdPersonWalker.js
// this script adds two things to the default FPS walker // - It adds movement forward by holding down both mouse keys // - and it adds auto animation changing between idle, walk and run // After adding this script to your controller, drag the character model to Target
var speed = 6.0; // standard running speed var walkSpeed = 8; // walk speed adjust both for your charcter so feet don't slide on ground var jumpSpeed = 8.0; var gravity = 20.0; var Character : Transform; var bullitPrefab:Transform;
private var moveDirection = Vector3.zero; private var grounded : boolean = false; // a flag to determine idle vs walking/running (so animations do not get started over and over) private var walking : boolean = false; // a flag to init idle animation at beginning private var startup : boolean = true; // a flag to determine walking vs running private var running : boolean = true;
function FixedUpdate() { if (grounded) { // We are grounded, so recalculate movedirection directly from axes moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
// if both mouse buttons are down, move forward if (Input.GetMouseButton(0) && Input.GetMouseButton(1)) { moveDirection.z = 1; }
moveDirection = transform.TransformDirection(moveDirection); if(running == true){ moveDirection = speed; } else { moveDirection = walkSpeed; }
if (Input.GetButton ("Jump")) { moveDirection.y = jumpSpeed; }
// auto toggle between idle and walking animations - based on run / walk switch if(Character){ // toggle between walk and run with <left shift> R if(Input.GetKey(KeyCode.LeftShift) && Input.GetKeyDown(KeyCode.R)){ if(running == true) { running = false; if(walking == true) Character.animation.CrossFade("walk"); } else { running = true; if(walking == true) Character.animation.CrossFade("run"); } } if(startup == true){ startup = false; Character.animation.Play("idle"); } if((moveDirection == Vector3.zero)&&(walking == true)){ walking = false; Character.animation.CrossFade("idle"); } else { if((moveDirection != Vector3.zero)&&(walking == false)){ walking = true; if(running == true){ Character.animation.CrossFade("run"); } else { Character.animation.CrossFade("walk"); } } } } } // Apply gravity moveDirection.y -= gravity * Time.deltaTime;
// Move the controller var controller : CharacterController = GetComponent(CharacterController); var flags = controller.Move(moveDirection * Time.deltaTime); grounded = (flags & CollisionFlags.CollidedBelow) != 0;
if(Input.GetButtonDown("Jump")) { var bullit = Instantiate (bullitPrefab,
GameObject.Find("spawnPoint").transform.position,
Quaternion.identity) ; bullit.rigidbody.AddForce(transform.forward 5000); } }
GameObject.Find("spawnPoint").transform.position; (Quaternion.identity) ; bullitPrefab.rigidbody.AddForce(transform.forward 5000);
Answer by AngryOldMan · Apr 24, 2011 at 09:12 PM
if you keep your code neat and tidy then these problems will be much easier to spot
// ThirdPersonWalker.js
// this script adds two things to the default FPS walker // - It adds movement forward by holding down both mouse keys // - and it adds auto animation changing between idle, walk and run // After adding this script to your controller, drag the character model to Target
var speed = 6.0; // standard running speed var walkSpeed = 8; // walk speed adjust both for your charcter so feet don't slide on ground var jumpSpeed = 8.0; var gravity = 20.0; var Character : Transform; var bullitPrefab:Transform;
private var moveDirection = Vector3.zero; private var grounded : boolean = false; // a flag to determine idle vs walking/running (so animations do not get started over and over) private var walking : boolean = false; // a flag to init idle animation at beginning private var startup : boolean = true; // a flag to determine walking vs running private var running : boolean = true;
function FixedUpdate() { if (grounded) { // We are grounded, so recalculate movedirection directly from axes moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); // if both mouse buttons are down, move forward if (Input.GetMouseButton(0) && Input.GetMouseButton(1)) { moveDirection.z = 1; } moveDirection = transform.TransformDirection(moveDirection);
if(running == true)
{
moveDirection *= speed;
}
else
{
moveDirection *= walkSpeed;
}
if (Input.GetButton ("Jump"))
{
moveDirection.y = jumpSpeed;
}
// auto toggle between idle and walking animations - based on run / walk switch
if(Character)
{
// toggle between walk and run with <left shift> R
if(Input.GetKey(KeyCode.LeftShift) && Input.GetKeyDown(KeyCode.R))
{
if(running == true)
{
running = false;
if(walking == true) Character.animation.CrossFade("walk");
}
else
{
running = true;
if(walking == true) Character.animation.CrossFade("run");
}
}
if(startup == true)
{
startup = false;
Character.animation.Play("idle");
}
if((moveDirection == Vector3.zero)&&(walking == true))
{
walking = false;
Character.animation.CrossFade("idle");
}
else
{
if((moveDirection != Vector3.zero)&&(walking == false))
{
walking = true;
if(running == true)
{
Character.animation.CrossFade("run");
}
else
{
Character.animation.CrossFade("walk");
}
}
}
}
}
// Apply gravity
moveDirection.y -= gravity * Time.deltaTime;
// Move the controller
var controller : CharacterController = GetComponent(CharacterController);
var flags = controller.Move(moveDirection * Time.deltaTime);
grounded = (flags & CollisionFlags.CollidedBelow) != 0;
if(Input.GetButtonDown("Jump"))
{
var bullit = Instantiate (bullitPrefab, GameObject.Find("spawnPoint").transform.position, Quaternion.identity) ;
bullit.rigidbody.AddForce(transform.forward * 5000);
}
}
//this is the bit your getting errors in, not sure what you are doing with this bit? /
GameObject.Find("spawnPoint").transform.position; (Quaternion.identity) ; bullitPrefab.rigidbody.AddForce(transform.forward 5000); */
The reason you are getting errors is because this section isnt in a function. I can't figure out what you are trying to do with it so I've just blanked it out.
Nice work. I just saw that chunk of jibberish and though never $$anonymous$$d xD