0
我試圖將這段代碼從Js轉換爲C#但我有一些麻煩。代碼是關於創建與陣列gride。這裏是腳本,在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];
它告訴我「無法隱式轉換浮點型‘爲int’的顯式轉換存在(是否缺少強制轉換?)。」和我還有一個錯誤在這行:
block = Instantiate(steelblock,new Vector3(x,y,0), Quaternion.identity);
它告訴我「無法隱式轉換類型UnityEngine.Object‘到UnityEngine.Transform’的顯式轉換存在(是否缺少強制轉換?)。」在我的C#腳本。
你能幫忙嗎?
在此先感謝