Я пытаюсь преобразовать этот код из Js в C#, но у меня есть некоторые проблемы. Код - это создание сетки с массивами. Вот сценарий, отлично работает в Unityscript:Массивы C# Ошибка Unity3D
var levelArray : int[,]; var levelSize : Vector2 = new Vector2(19,13);
var steelblock : Transform;
function Start()
{
SetupLevel();
}
function SetupLevel()
{
levelSize.x = Mathf.FloorToInt(levelSize.x);
levelSize.y = Mathf.FloorToInt(levelSize.y);
levelArray = new int[ levelSize.x, levelSize.y];
var block : Transform;
for(var y : int = 0; y < levelSize.y ; y++)
{
for(var x : int = 0 ; x < levelSize.x ; x++)
{
if(x == 0 || x == levelSize.x - 1 ||y ==0 || y == levelSize.y -1)
{
levelArray[ x , y ] = 2;
block = Instantiate(steelblock,Vector3(x,y,0), Quaternion.identity);
block.name = "steel_"+x.ToString() + "_"+ y.ToString();
block.parent = transform;
}
else if(x% 2 == 0 && y %2 ==0)
{
levelArray[ x , y ] = 2;
block = Instantiate(steelblock,Vector3(x,y,0), Quaternion.identity);
block.name = "steel_"+x.ToString() + "_"+ y.ToString();
block.parent = transform;
}
}
}
}
пытался преобразовать этот код из Javascript в C#, но у меня возникают какие-то ошибки.
using System.Collections.Generic;
public class NewBehaviourScript : MonoBehaviour
{
int[,] levelArray ;
Vector2 levelSize = new Vector2(19,13);
Transform steelblock;
// Use this for initialization
void Start()
{
SetupLevel();
}
void SetupLevel()
{
levelSize.x = Mathf.FloorToInt(levelSize.x);
levelSize.y = Mathf.FloorToInt(levelSize.y);
levelArray = new int[ levelSize.x, levelSize.y];
Transform block ;
for(int y = 0; y < levelSize.y ; y++)
{
for(int x = 0 ; x < levelSize.x ; x++)
{
if(x == 0 || x == levelSize.x - 1 ||y ==0 || y == levelSize.y -1)
{
levelArray[ x , y ] = 2;
block = Instantiate(steelblock,new Vector3(x,y,0), Quaternion.identity);
block.name = "steel_"+x.ToString() + "_"+ y.ToString();
block.parent = transform;
}
else if(x% 2 == 0 && y %2 ==0)
{
levelArray[ x , y ] = 2;
block = Instantiate(steelblock,new Vector3(x,y,0), Quaternion.identity);
block.name = "steel_"+x.ToString() + "_"+ y.ToString();
block.parent = transform;
}
}
}
}
}
Ошибки в этой строке:
levelArray = new int[ levelSize.x, levelSize.y];
Это говорит мне «Не удается неявно преобразовать тип с плавающей точкой„в целом“Явное преобразование существует (вы пропали без вести слепок?).» И я есть еще одна ошибка в этой строке:
block = Instantiate(steelblock,new Vector3(x,y,0), Quaternion.identity);
Он говорит мне: «не удается неявно преобразовать тип UnityEngine.Object„в UnityEngine.Transform“явное преобразование существует (вы пропали без вести слепок?).» в моем C# сценарий.
Вы можете помочь с этим!
Заранее спасибо