Нуждающийся
Регистрация: 29.06.2016
Сообщений: 80
Написано 28 полезных сообщений (для 52 пользователей)
|
Ответ: Mistshift Обучение
Вот так работает;
using UnityEngine;
using System.Collections;
public class LG : MonoBehaviour {
public int x_grid = 77;
public int y_grid = 77;
private int[,,] g;
private GameObject[,] cube;
void Start()
{
g = new int[x_grid, y_grid, 2];
cube = new GameObject[x_grid, y_grid];
for (int x = 0; x < x_grid; x=x+1) {
for (int y = 0; y < y_grid; y=y+1) {
cube[x,y]=GameObject.CreatePrimitive (PrimitiveType.Cube);
cube[x,y].transform.position = new Vector3 (x * 2, 0, y * 2);
cube[x,y].renderer.material.color = new Color(x *0.1f,0,y *0.1f);
cube[x,y].active= false;//Hide
g[Random.Range(x, y),Random.Range(x, y),1] = 1;
}
}
}
void Update()
{
//Lightweight spaceship (LWSS)
if (Input.GetKeyDown("f")) {
g[20,10,1] = 1;
g[20,13,1] = 1;
g[21,14,1] = 1;
g[22,14,1] = 1;
g[23,14,1] = 1;
g[23,13,1] = 1;
g[23,12,1] = 1;
g[23,11,1] = 1;
g[22,10,1] = 1;
}
for (int x = 0; x < x_grid; x=x+1)
{
for (int y = 0; y < y_grid; y=y+1)
{
if ((g[x,y,1] == 1) || (g[x,y,1] == 0 && g[x,y,0] == 1))
{
g[x,y,0] = 1;
cube[x,y].active= true;//Show
}
if (g[x,y,1] == -1)
{
g[x,y,0] = 0;
cube[x,y].active= false;//Hide
}
g[x,y,1] = 0;
}
}
for (int x = 0; x < x_grid; x=x+1)
{
for (int y = 0; y < y_grid; y=y+1)
{
int count = gen(x, y);
if (count == 3 && g[x,y,0] == 0)
{
g[x,y,1] = 1;
}
if ((count < 2 || count > 3) && g[x,y,0] == 1)
{
g[x,y,1] = -1;
}
}
}
}
int gen(int x, int y)
{
return g[(x + 1) % x_grid, y, 0] + g[x, (y + 1) % y_grid, 0]+ g[(x + x_grid - 1) % x_grid,y,0] + g[x,(y + y_grid - 1) % y_grid,0]+ g[(x + 1) % x_grid,(y + 1) % y_grid,0] + g[(x + x_grid - 1) % x_grid,(y + 1) % y_grid,0] + g[(x + x_grid - 1) % x_grid,(y + y_grid - 1) % y_grid,0] + g[(x + 1) % x_grid,(y + y_grid - 1) % y_grid,0];
}
}
"F" Создать "Космический корабль"
А как туман вокруг Сферы сделать?
Последний раз редактировалось Foxymist, 24.07.2016 в 18:04.
Причина: Неправильная ссылка на вложение.
|