It is not possible to invoke an expression of type 'SpriteManager[]'.

I’m trying to code a 2d platformer. I keep getting this error, when I try to change the to () it tells me unexpected token. I try with semicolen, and without. I’m not sure what the issue is, so here is the script.

public var f_speed : float = 5.0;
public var loopSprites : SpriteManager[];
private var in_direction : int;


function Start () : void {
	in_direction = 1;
//initialization Sprite Manager
	for (var i : int = 0; i<loopSprites.length; i++) {
		loopSprites*.init();*

}
//Update main camera to the character position
Camera.main.transform.position = new Vector3 (transform.position.x, transform.position.y, Camera.main.transform.position.z);
}

public function Update () : void {

  • if (Input.GetButton(“Horizontal”)) {*
  •  //walking*
    
  •  in_direction = Input.GetAxis("Horizontal") < 0 ? -1: 1;*
    

rigidbody.velocity = new Vector3((in_direction*f_speed),

  • rigidbody.velocity.y, 0);*
  •  //reset stay animation frame back to the first frame*
    
  •  loopSprites(0).resetFrame();*
    
  •  //update walking animation while the character is walking*
    
  •  loopSprites(1).updateAnimation(in_direction, renderer.material);*
    
  •  } else {*
    
  •  //stay*
    
  •  //reset walking animation frame back to the first frame*
    
  •  loopSprites(1).resetFrame();*
    
  •  //update stay animation while the character is not walking*
    
  •  loopSprites(0).updateAnimation(in_direction, renderer.material);*
    
  •  }*
    
  • }*

public function LateUpdate() : void {
//update main camera

  • Camera.main.transform.position = new Vector3(transform.position.x, transform.position.y, Camera.main.transform.position.z);*
    *} *

  • class SpriteManager {*

  •  public var spriteTexture : Texture2D; //set texture use for a loop animation such as walking, stay, etc.*
    
  •  public var in_framePerSec : int; //get frame per sec to calculate time*
    
  •  public var in_gridx : int; //get max number of horizontal images*
    
  •  public var in_gridy : int; //get max number oif vertical images*
    
  •  private var f_timePercent : float;*
    
  •  private var f_nextTime : float; //update time byte using frame persecond*
    
  •  private var f_gridx : float;*
    
  •  private var f_gridy : float;		*
    
  •  private var in_curFrame : int;*
    
  •  public function init () : void {*
    
  •  	f_timePercent = 1.0/in_framePerSec;*
    
  •  	f_nextTime = f_timePercent; //update time by using frame*
    
  •  	f_gridx = 1.0/in_gridx;*
    
  •  	f_gridy = 1.0/in_gridy;*
    
  •  	in_curFrame = 1;*
    
  •  }*
    
  •  public function updateAnimation (_direction : int, _material : Material) : void {*
    
  •  //update material*
    
  •  _material.mainTexture = spriteTexture;*
    
  •  //update frame by time*
    
  •  if (Time.time>f_nextTime) {*
    
  •  	f_nextTime = Time.time + f_timePercent;*
    
  •  	in_curFrame++;*
    
  •  	if (in_curFrame>in_framePerSec) {*
    
  •  		in_curFrame = 1;*
    
  •  	}*
    
  •  }*
    

_material.mainTextureScale - new Vector2 (_direction * f_gridx, f_gridx);

  •  var in_col : int = 0;*
    
  •  if (in_gridy> 1) {*
    
  •  	//if there is more than one grid on the y-axis update the texture*
    
  •  in_col= Mathf.Ceil(in_curFrame/in_gridx);*
    
  •  }*
    
  •  	if(_direction == 1) { //right*
    

_material.mainTextureOffset = new Vector2(((in_curFrame%in_gridx)) * f_gridx, in_col*f_gridy);

  •  		}*
    
  •  	}*
    
  •  	public function resetFrame () :void {*
    
  •  		in_curFrame = 1;*
    
  •  		}*
    
  •  	}*
    

This is totally wrong:

loopSprites(0).resetFrame();

The normal brackets () are used to invoke a method but loopSprites is an array. You have to use the index brackets :

loopSprites[0].resetFrame();