Search Unity

Boolean expression will always have the same value.

Discussion in 'Scripting' started by probaku1234, Dec 21, 2014.

  1. probaku1234

    probaku1234

    Joined:
    Feb 13, 2014
    Posts:
    1
    Code (JavaScript):
    1. function Update () {
    2.     if (Input.GetKeyDown(KeyCode.LeftArrow)) {
    3.         var cam : Transform = Camera.main.transform;
    4.         var cameraRelativeRight : Vector3 = cam.TransformDirection (1, 0, 0);
    5.         transform.position += cameraRelativeRight * -1;
    6.     }
    7.     else if (Input.GetKeyDown(KeyCode.RightArrow)) {
    8.           cam = Camera.main.transform;
    9.         cameraRelativeRight = cam.TransformDirection (1, 0, 0);
    10.         transform.position += cameraRelativeRight * 1;      
    11.     }
    12.     else if (Input.GetKeyDown(KeyCode.DownArrow)) {
    13.         cam = Camera.main.transform;
    14.         var cameraRelativeForward : Vector3 = cam.TransformDirection (0, 0, 1);
    15.         transform.position += cameraRelativeForward * -1;      
    16.     }
    17.     else if (Input.GetKeyDown(KeyCode.UpArrow)) {
    18.         cam = Camera.main.transform;
    19.         cameraRelativeForward = cam.TransformDirection (0, 0, 1);
    20.         transform.position += cameraRelativeForward * 1;      
    21.     }
    22.     else if (Input.GetKeyDown(KeyCode.Space) || Time.time - lastFall >= 1) {
    23.         transform.position += new Vector3(0, -1, 0);
    24.         if (!isValidPosition){
    25.             Debug.Log("you F***ed up");
    26.             FindObjectOfType(BlockSpawn).BlockSpawn();
    27.             // Disable script
    28.             enabled = false;
    29.         }
    30.    
    31.         lastFall = Time.time;
    32.     }
    33. }
    34. function isValidPosition () : boolean{
    35.     if (transform.position.y < 0.1)
    36.         return false;
    37.     else if (transform.position.x > 5 )
    38.         return false;
    39.     else if ( transform.position.x < -5)
    40.         return false;
    41.     else if (transform.position.z > 5 )
    42.         return false;
    43.     else if (transform.position.z < -5)
    44.         return false;
    45.     else
    46.         return true;
    47. }
    The log says that 'function isValidPosition' has always the same value.
    I dont know why....
     
  2. hpjohn

    hpjohn

    Joined:
    Aug 14, 2012
    Posts:
    2,190
    You need to call the method properly with
    if ( !isValidPosition() ){