不太懂你说的。
是类似霓虹灯那样的按时间顺序显示?
数组的0 1是指什么意思?
让物体消失,最简单的就是gameObject.SetActive( boolean ) , boolean 值为true就激活,false就屏蔽。屏蔽的物体就是未激活的状态,其上所有的组件都处于停止状态,不更新(不做Update() )。
如果只是要在把显示隐藏,就是transform.renderer.enabled = true 或false; 这样就是不做渲染,但是其它组件正常更新(正常Update())。
按时间顺序显示和隐藏,无非就是要做一个逻辑循环,轮流激活相应的gameObject。
代码:
var cubePrefab:Transform; // 你要用的单个Cube的Prefab, 你得先做一个Prefab。在编辑界面中拖到脚本对应该变量的位置
var cubeArray:Transform[]; //方块数组
var cubeIndex:int; //当前被显示的方块的数组序号index
var timer:float; //时间间隔
Start () {
//假设你有三十个方块,放在一个数组里
cubeArray = new Transform[30];
//初始化数组
var xOffset:float;
for(var t:Transform in cubeArray){
// 初始化并按x轴排开
t = GameObject.Instantiate(cubePrefab, vector3(xOffset,0,0), Quaternion.identity);
t.name = "MyCube" + cubeIndex.ToString(); // 序号命名
t.gameObject.SetActive(false); //默认未激活隐藏状态
cubeArray[cubeIndex] = t;
cubeIndex ++;
}
//把cubeIndex复位归零
cubeIndex = 0;
}
Update() {
//假设从头到尾结束,再从头循环,每隔0.05秒显示下一个对应的方块
if(timer > 0.05){
timer -= 0.05;
cubeArray[cubeIndex].gameObject.SetActive(false); //屏蔽当前显示的cube
cubeIndex ++;
if(cubeIndex >= cubeArray.length){
cubeIndex = 0; //递归到尾部,再重新回到头部
}
cubeArray[cubeIndex].gameObject.SetActive(true); //显示下一个cube
return;
}
timer += Time.deltaTime; // 计时
}
直接手打的,没有做实际测试。大致上就是这个框架了。