hey guys I’m trying to convert a js script to a c# script because my movement system is in c# and it would be alot simpler if this function were in c# then to rescript my entire movement and combat system in js so I was wondering if someone could help me out…I’ve already done a good piece of it…I just need probably the last few lines (I’m having a hard time understanding exactly what Vectors are…that could have something to do with it)
ok this is the original js code
//vars for the whole sheet
var colCount : int = 3;
var rowCount : int = 4;
//vars for animation
var rowNumber : int = 0; //Zero Indexed
var colNumber : int = 0; //Zero Indexed
var totalCells : int = 3;
var fps : int = 10;
var offset : Vector2; //Maybe this should be a private var
//Update
function Update () { SetSpriteAnimation(colCount,rowCount,rowNumber,colNumber,totalCells,fps); }
//SetSpriteAnimation
function SetSpriteAnimation(colCount : int,rowCount : int,rowNumber : int,colNumber : int,totalCells : int,fps : int){
// Calculate index
var index : int = Time.time * fps;
// Repeat when exhausting all cells
index = index % totalCells;
// Size of every cell
var size = Vector2 (1.0 / colCount, 1.0 / rowCount);
// split into horizontal and vertical index
var uIndex = index % colCount;
var vIndex = index / colCount;
// build offset
// v coordinate is the bottom of the image in opengl so we need to invert.
offset = Vector2 ((uIndex+colNumber) * size.x, (1.0 - size.y) - (vIndex+rowNumber) * size.y);
renderer.material.SetTextureOffset ("_MainTex", offset);
renderer.material.SetTextureScale ("_MainTex", size);
}
and this is the C# code
using UnityEngine;
using System.Collections;
public class PlayerAnimation : MonoBehaviour
{
//vars
int colcount = 3;
int rowcount = 4;
int rownum = 0;
int colnum = 0;
int totalcells = 3;
int fps = 10;
Vector2 offset;
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
spriteanimation(colcount,rowcount,rownum,colnum,totalcells,fps);
}
IEnumerator spriteanimation(int colcount,int rowcount,int rownum,int colnum,int totalcells,int fps)
{
float index = Time.time * fps;
index = index % totalcells;
int size = Vector2(1.0 / colcount, 1.0 / rowcount);
float uindex = index % colcount;
float vindex = index / colcount;
offset = Vector2((uindex + colnum) * size.x, (1.0 - size.y) - (vindex+rownum) * size.y);
renderer.material.SetTextureOffset ("_MainTex", offset);
renderer.material.SetTextureScale ("_MainTex", size);
}
}