How can I convert this code to unity Android.. because when I switch platforms, too many errors are being detected...
//var cam: GameObject;
var skin1: GUISkin;
private var steps: int;
private var n1: int;
var isTweening: boolean = false;
var smoothing: boolean = false;
private var tStart: float = -1;
private var tGameStart: float = 0;
function Awake () {
init();
}
function init () {
steps = 0;
tStart = Time.time;
corners = new Array();
for (var i=0; i<2; i++) {
for (var j=0; j<2; j++) {
for (var k=0; k<2; k++) {
corners.Push(Vector3(i*(n-1),j*(n-1),k*(n-1)));
}
}
}
edges = new Array();
for (var i1=1; i1<n-1; i1++) {
for (var j1=0; j1<2; j1++) {
for (var k1=0; k1<2; k1++) {
edges.Push(Vector3(i1,j1*(n-1),k1*(n-1)));
edges.Push(Vector3(j1*(n-1),i1,k1*(n-1)));
edges.Push(Vector3(j1*(n-1),k1*(n-1),i1));
}
}
}
//Debug.Log(edges);
edgeMats = new Array();
for (var i2=0; i2<6; i2++) {
var arr4 = new Array();
for (var j2=0; j2<8; j2++) {
var mat1 = Instantiate(mats[i2]);
mat1.shader = Shader.Find( "Self-Illumin/Specular" );
mat1.SetTexture("_Illum", textures[j2]);
//mat1.mainTexture = textures[j2];
arr4.Push(mat1);
}
edgeMats.Push(arr4);
}
}
function Start () {
n1 = n;
hub = new GameObject();
hubDummy1 = new GameObject();
hubDummy2 = new GameObject();
sceneSetup();
}
function sceneSetup () {
cam.transform.position = Vector3.zero ;
cam.transform.rotation.eulerAngles = Vector3.zero ;
cam.transform.position.z = - n*2;
cam.transform.RotateAround(Vector3.zero,Vector3.up,45);
cam.GetComponent("Cameraorbit").distance = n*2;
cam.GetComponent("Cameraorbit").distanceMin = n;
cam.GetComponent("Cameraorbit").distanceMax = n*5;
cam.GetComponent("Cameraorbit").Init();
cam.GetComponent("Cameraorbit").enabled = true;
Supercube ();
tGameStart = Time.time;
}
function Supercube () {
for (var i=0; i<n; i++) {
for (var j=0; j<n; j++) {
for (var k=0; k<n; k++) {
var cube = new GameObject ();
cube.name = "cube"+i+j+k;
addWalls(cube,i,j,k);
var c1: float = -n*0.5;
cube.transform.parent = transform;
cube.transform.localPosition = Vector3(-n*0.5 + i+0.5,-n*0.5 +j+0.5,-n*0.5 +k+0.5);
}
}
}
}
function Update () {
hub.transform.rotation = Quaternion.Slerp (hubDummy1.transform.rotation, hubDummy2.transform.rotation, (Time.time - tStart)/rotTime);
}
function addWalls(box:GameObject,u:int,v:int,w:int){
var edge: GameObject;
var cornerEdgeU: GameObject;
var cornerEdgeV: GameObject;
var cornerEdgeW: GameObject;
for (var corner in corners) {
if(Vector3(u,v,w)==corner){
cornerEdgeU = new GameObject();
cornerEdgeV = new GameObject();
cornerEdgeW = new GameObject();
cornerEdgeU.transform.parent = box.transform;
cornerEdgeV.transform.parent = box.transform;
cornerEdgeW.transform.parent = box.transform;
}
}
for (var element in edges) {
if(Vector3(u,v,w)==element){
edge = new GameObject ();
edge.name = "edge" +u+v+w;
edge.transform.parent = box.transform;
}
}
if(w==n-1){//back
if(Vector2(u,v)==Vector2(0,0)||Vector2(u,v)==Vector2(n-1,0)||Vector2(u,v)==Vector2(0,n-1)||Vector2(u,v)==Vector2(n-1,n-1)){
cornerWall(0,Vector2(u,v),cornerEdgeU,cornerEdgeV);
}else{
if(u==0||u==n-1||v==0||v==n-1){wall(0,"outer",u,v,edge,true);}else{wall(0,"outer",u,v,box,false);}
}
}else{wall(0,"inner",u,v,box,false);}
if(u==n-1){//right - magenta
if(Vector2(w,v)==Vector2(0,0)||Vector2(w,v)==Vector2(n-1,0)||Vector2(w,v)==Vector2(0,n-1)||Vector2(w,v)==Vector2(n-1,n-1)){
cornerWall(1,Vector2(w,v),cornerEdgeW,cornerEdgeV);
}else{
if(w==0||w==n-1||v==0||v==n-1){wall(1,"outer",n-1-w,v,edge,true);}else{wall(1,"outer",n-1-w,v,box,false);}
}
}else{wall(1,"inner",w,v,box,false);}
if(w==0){//front - light blue
if(Vector2(u,v)==Vector2(0,0)||Vector2(u,v)==Vector2(n-1,0)||Vector2(u,v)==Vector2(0,n-1)||Vector2(u,v)==Vector2(n-1,n-1)){
cornerWall(2,Vector2(u,v),cornerEdgeU,cornerEdgeV);
}else{
if(u==0||u==n-1||v==0||v==n-1){wall(2,"outer",n-1-u,v,edge,true);}else{wall(2,"outer",n-1-u,v,box,false);}
}
}else{wall(2,"inner",-u,v,box,false);}
if(u==0){//left
if(Vector2(w,v)==Vector2(0,0)||Vector2(w,v)==Vector2(n-1,0)||Vector2(w,v)==Vector2(0,n-1)||Vector2(w,v)==Vector2(n-1,n-1)){
cornerWall(3,Vector2(w,v),cornerEdgeW,cornerEdgeV);
}else{
if(w==0||w==n-1||v==0||v==n-1){wall(3,"outer",w,v,edge,true);}else{wall(3,"outer",w,v,box,false);}
}
}else{wall(3,"inner",w,v,box,false);}
if(v==0){//bottom
if(Vector2(w,u)==Vector2(0,0)||Vector2(w,u)==Vector2(n-1,0)||Vector2(w,u)==Vector2(0,n-1)||Vector2(w,u)==Vector2(n-1,n-1)){
cornerWall(4,Vector2(u,w),cornerEdgeU,cornerEdgeW);
}else{
if(w==0||w==n-1||u==0||u==n-1){wall(4,"outer",u,w,edge,true);}else{wall(4,"outer",u,w,box,false);}
}
}else{wall(4,"inner",w,u,box,false);}
if(v==n-1){//top - king blue
if(Vector2(w,u)==Vector2(0,0)||Vector2(w,u)==Vector2(n-1,0)||Vector2(w,u)==Vector2(0,n-1)||Vector2(w,u)==Vector2(n-1,n-1)){
cornerWall(5,Vector2(u,w),cornerEdgeU,cornerEdgeW);
}else{
if(w==0||w==n-1||u==0||u==n-1){wall(5,"outer",u,n-1-w,edge,true);}else{wall(5,"outer",u,n-1-w,box,false);}
}
}else{wall(5,"inner",w,u,box,false);}
}
function cornerWall (pos:int,vect:Vector2,parentObject1:GameObject,parentObject2:GameObject) {
var parentObjects = new Array(parentObject1,parentObject2);
var k1=1;
var matHighlight: Material;
for (var po in parentObjects) {
var tri = new GameObject();
var a1 = 2*s*vect.x/(n-1);
var b1 = 2*s*vect.y/(n-1);
var mesh : Mesh = new Mesh ();
tri.transform.parent = po.transform;
tri.AddComponent(MeshFilter);
tri.AddComponent(MeshRenderer);
tri.renderer.material = mats[pos];
tri.GetComponent(MeshFilter).mesh = mesh;
switch(pos){
case 0: //back - red
mesh.vertices = [k1*Vector3(s-a1,s-b1,0), k1*Vector3(s-a1,-s+b1,0), k1*Vector3(-s+a1,-s+b1,0)];
mesh.uv = [k1*Vector2 (0, 1 - b1/s), k1*Vector2 (0, 0), k1*Vector2 (1-a1/s, 0)];
tri.transform.localPosition.z = s;
break;
case 1://right - magenta
mesh.vertices = [k1*Vector3(0,-s+b1,-s+a1), k1*Vector3(0,-s+b1,s-a1), k1*Vector3(0,s-b1,s-a1)];
mesh.uv = [k1*Vector2 (1-a1/s, 0), Vector2 (0, 0), k1*Vector2 (0, 1- b1/s)];
tri.transform.localPosition.x = s;
break;
case 2://front - light blue
mesh.vertices = [k1*Vector3(-s+a1,-s+b1,0), k1*Vector3(s-a1,-s+b1,0), k1*Vector3(s-a1,s-b1,0)];
mesh.uv = [k1*Vector2 (1-a1/s, 0), Vector2 (0, 0), k1*Vector2 (0, 1 - b1/s)];
tri.transform.localPosition.z = -s;
break;
case 3://left - green
mesh.vertices = [k1*Vector3(0,s-b1,s-a1), k1*Vector3(0,-s+b1,s-a1), k1*Vector3(0,-s+b1,-s+a1)];
mesh.uv = [k1*Vector2 (0, 1 - b1/s), k1*Vector2 (0, 0), k1*Vector2 (1-a1/s, 0)];
tri.transform.localPosition.x = -s;
break;
case 4://bottom - yellow
mesh.vertices = [k1*Vector3(s-a1,0,s-b1), k1*Vector3(s-a1,0,-s+b1), k1*Vector3(-s+a1,0,-s+b1)];
mesh.uv = [k1*Vector2 (0, 1 - b1/s), k1*Vector2 (0, 0), k1*Vector2 (1-a1/s, 0)];
tri.transform.localPosition.y = -s;
break;
case 5://top - king blue
mesh.vertices = [k1*Vector3(-s+a1,0,-s+b1), k1*Vector3(s-a1,0,-s+b1), k1*Vector3(s-a1,0,s-b1)];
mesh.uv = [k1*Vector2 (1-a1/s, 0), Vector2 (0, 0), k1*Vector2 (0, 1-b1/s)];
tri.transform.localPosition.y = s;
break;
}
switch(vect){
case Vector2(0,n-1): //top-left
matHighlight= edgeMats[pos][5];
break;
case Vector2(0,0): //bottom-left
matHighlight= edgeMats[pos][6];
break;
case Vector2(n-1,0): //bottom-left
matHighlight= edgeMats[pos][7];
break;
case Vector2(n-1,n-1): //bottom-left
matHighlight= edgeMats[pos][4];
break;
}
if(vect.x==vect.y){mesh.triangles = [0, 2, 1];}else{mesh.triangles = [0, 1, 2];}
mesh.RecalculateNormals();
tri.AddComponent(MeshCollider);
tri.AddComponent("mouseInteract"); tri.GetComponent("mouseInteract").n=n;
tri.GetComponent("mouseInteract").mat=mats[pos];
tri.GetComponent("mouseInteract").matOver=matHighlight;
Debug.Log("pos" + pos);
k1 *= -1;
}
}
function wall (pos:int,inner:String,x1,y1,parentObject:GameObject,interactive:boolean) {
var matHighlight: Material;
var square = new GameObject();
var mesh : Mesh = new Mesh ();
square.transform.parent = parentObject.transform;
square.AddComponent(MeshFilter);
square.AddComponent(MeshRenderer);
square.GetComponent(MeshFilter).mesh = mesh;
mesh.vertices = [Vector3(s,s,0), Vector3(s,-s,0), Vector3(-s,-s,0),Vector3(-s,s,0)];
mesh.uv = [Vector2 (0, 0), Vector2 (0, -1), Vector2 (-1, -1), Vector2 (-1, 0)];
mesh.triangles = [0, 2, 1, 0, 3, 2];
mesh.RecalculateNormals();
square.transform.position.z = s;
switch(pos){
case 0: //back
break;
case 1://right
square.transform.RotateAround(Vector3.zero,Vector3.up,90);
break;
case 2://front
square.transform.RotateAround(Vector3.zero,Vector3.up,180);
break;
case 3://left
square.transform.RotateAround(Vector3.zero,Vector3.up,270);
break;
case 4://bottom
square.transform.RotateAround(Vector3.zero,Vector3.right,90);
break;
case 5://top
square.transform.RotateAround(Vector3.zero,Vector3.right,270);
break;
}
if(inner=="inner"){square.renderer.material = mats[6];}else{
square.renderer.material = mats[pos];
switch(x1){
case 0: //left
matHighlight = edgeMats[pos][0];
break;
case n-1: //right
matHighlight = edgeMats[pos][1];
break;
}
switch(y1){
case 0: //bottom
matHighlight = edgeMats[pos][2];
break;
case n-1: //top
matHighlight = edgeMats[pos][3];
break;
}
}
if(interactive){
square.AddComponent(MeshCollider);
square.AddComponent("mouseInteract"); square.GetComponent("mouseInteract").n=n;
square.GetComponent("mouseInteract").mat=mats[pos];
square.GetComponent("mouseInteract").matOver=matHighlight;
}
}
function OnGUI () {
GUI.skin = skin1;
GUI.Label (Rect (0,0,0.16*Screen.width,Screen.height), " ","window");
if (GUI.Button (Rect (12,12,100,20), "RESET")) {
Rebuild();
}
if (GUI.Button (Rect (12,42,100,20), "RANDOMIZE")) {
for (var i=0; i<8*n; i++) {
Randomize();
steps = 0;
}
}
GUI.Label (Rect (12,72,40,40), "matrix size");
if (GUI.Button (Rect (92,72,20,20), "+")) {n1++;}
if (GUI.Button (Rect (92,92,20,20), "-")) {if(n1>2)n1--;}
GUI.Label (Rect (52,72,40,40), n1.ToString(),"box1");
smoothing = GUI.Toggle (Rect (12, 132, 100, 30), smoothing, "smoothing");
GUI.Label (Rect (12,Screen.height-72,100,20), "Time: "+(Time.time - tGameStart).ToString("#.0"));
GUI.Label (Rect (12,Screen.height-42,100,20), "Moves: "+ steps);
}
function Rebuild () {
var toDestroy = new Array();
for (var child in transform) {
toDestroy.Push(child.gameObject);
}
var m = toDestroy.length;
for (var i=0; i<m; i++) {
Destroy(toDestroy*);*
- }*
- n = n1;*
- //yield WaitForSeconds (10);*
- cam.GetComponent(“Cameraorbit”).enabled = false;*
- yield WaitForSeconds (0.1);*
- init();*
- sceneSetup();*
}
function Randomize () {
_ var rand1 = Mathf.Round(6Random.value-0.5);_
_ var rand2 = Mathf.Round(nRandom.value-0.5);_
- steps = 0;*
- tGameStart = Time.time;*
- switch(rand1){*
-
case 0:*
-
version = "x";axis=Vector3.right;*
-
break;*
-
case 1:*
-
version = "x";axis=-Vector3.right;*
-
break;*
-
case 2:*
-
version = "y";axis=Vector3.up;*
-
break;*
-
case 3:*
-
version = "y";axis=-Vector3.up;*
-
break;*
-
case 4:*
-
version = "z";axis=Vector3.forward;*
-
break;*
-
case 5:*
-
version = "z";axis=-Vector3.forward;*
-
break;*
- }*
- Debug.Log(“random” + rand1 + " " + rand2);*
- selectRotate(version, axis, rand2,rand2,rand2,true);*
}
function selectRotate(version1:String, axis:Vector3, ixx:int,iyy:int,izz:int,noSmoothing:boolean){
- steps++;*
- var hubArr = new Array();//*
- for (var box in transform) {*
-
//Debug.Log(box.name);*
-
switch(version1){*
-
case "x":*
_ if(Mathf.Round(box.transform.position.x+0.5*(n-1))==ixx){_
-
hubArr.push(box);*
-
}*
-
break;*
-
case "y":*
_ if(Mathf.Round(box.transform.position.y+0.5*(n-1))==iyy){_
-
hubArr.push(box);*
-
}*
-
break;*
-
case"z":*
_ if(Mathf.Round(box.transform.position.z+0.5*(n-1))==izz){_
-
hubArr.push(box);*
-
}*
-
break;*
-
}*
-
}*
-
var m = hubArr.length;*
-
Debug.Log("hubArr "+m);*
-
for (var i=0; i<m; i++) {*
_ hubArr*.transform.parent = hub.transform;_
_ }*_
* hubDummy2.transform.RotateAround(Vector3.zero,-axis,90);*
* if(!smoothing||noSmoothing){*
* hub.transform.RotateAround(Vector3.zero,-axis,90);*
* hubDummy1.transform.RotateAround(Vector3.zero,-axis,90);*
* }else{*
* tStart = Time.time;*
* yield WaitForSeconds (rotTime + 0.1);*
* hubDummy1.transform.RotateAround(Vector3.zero,-axis,90);*
* isTweening = false;*
* }*
* for (var j=0;j<m; j++) {*
* hubArr[j].transform.parent = transform;*
* }*
}