- Home /
Question by
MrP · Feb 12, 2013 at 11:25 AM ·
c#javascriptconvertdeclaration
help me converting js to c#
I already converted few things but I still don't know something please help me. I marked the place what I don't know with "??".
Thank you
//JS
var saved : float[,,];
private var tData : TerrainData;
var cratertex : Texture2D;
var craterData;
var xRes: int;
var yRes: int;
var layers: int;
function Start ()
{
tData = Terrain.activeTerrain.terrainData;
yRes = tData.alphamapHeight;
xRes = tData.alphamapWidth;
layers = tData.alphamapLayers;
craterData = cratertex.GetPixels();
saved = tData.GetAlphamaps (0, 0, xRes, yRes);
}
function OnApplicationQuit ()
{
tData.SetAlphamaps (0,0,saved);
}
function Update ()
{
if (Input.GetMouseButtonDown(0))
{
var g : int = Mathf.Lerp(0, xRes, Mathf.InverseLerp(0, tData.size.x, mouse.mousepos.x));
var b : int = Mathf.Lerp(0, yRes, Mathf.InverseLerp(0, tData.size.z, mouse.mousepos.z));
g = Mathf.Clamp(g, cratertex.width/2, xRes-cratertex.width/2);
b = Mathf.Clamp(b, cratertex.height/2, yRes-cratertex.height/2);
var area = tData.GetAlphamaps(g-cratertex.width/2, b-cratertex.height/2, cratertex.width, cratertex.height);
for (x = 0; x < cratertex.height; x++)
{
for (y = 0; y < cratertex.width; y++)
{
for (z = 0; z < layers; z++)
{
if (z == 1)
{
area [x,y,z] += craterData[x*cratertex.width + y].a;
}
else
{
area [x,y,z] -= craterData[x*cratertex.width + y].a;
}
}
}
}
tData.SetAlphamaps (g-cratertex.width/2,b-cratertex.height/2,area);
}
}
//C# using UnityEngine; using System.Collections;
public class texturechanger : MonoBehaviour { float[,,] saved; private TerrainData tData; Texture2D cratertex; ?? craterData; int xRes; int yRes; int layers; public static Vector3 mousepos;
void Start ()
{
tData = Terrain.activeTerrain.terrainData;
yRes = tData.alphamapHeight;
xRes = tData.alphamapWidth;
layers = tData.alphamapLayers;
craterData = cratertex.GetPixels();
saved = tData.GetAlphamaps (0, 0, xRes, yRes);
}
void OnApplicationQuit ()
{
tData.SetAlphamaps (0,0,saved);
}
void Update ()
{
if (Input.GetMouseButtonDown(0))
{
int g = Mathf.Lerp(0, xRes, Mathf.InverseLerp(0, tData.size.x, mousepos.x));
int b = Mathf.Lerp(0, yRes, Mathf.InverseLerp(0, tData.size.z, mousepos.z));
g = Mathf.Clamp(g, cratertex.width/2, xRes-cratertex.width/2);
b = Mathf.Clamp(b, cratertex.height/2, yRes-cratertex.height/2);
?? area = tData.GetAlphamaps(g-cratertex.width/2, b-cratertex.height/2, cratertex.width, cratertex.height);
for (int x = 0; x < cratertex.height; ++x)
{
for (int y = 0; y < cratertex.width; ++y)
{
for (int z = 0; z < layers; ++z)
{
if (z == 1)
{
area [x,y,z] += craterData[x*cratertex.width + y].a;
}
else
{
area [x,y,z] -= craterData[x*cratertex.width + y].a;
}
}
}
}
tData.SetAlphamaps (g-cratertex.width/2,b-cratertex.height/2,area);
}
}
}
Comment
Answer by FL · Feb 12, 2013 at 07:14 PM
First ?? = Color[]
Second ?? = float[,,]
I only checked the return values from http://docs.unity3d.com/Documentation/ScriptReference/Texture2D.GetPixels.html and http://docs.unity3d.com/Documentation/ScriptReference/TerrainData.GetAlphamaps.html