您的位置:首页 > 移动开发 > Unity3D

unity学习(二)

2016-01-20 00:49 393 查看



1. 创建预制件(prefab):创建cube预制件

GameObject->3D Object->cube

将创建好的cube对象拖至文件中即可制成预制件,预制件创建好之后就可以在代码中调用了。

2. 创建一个空游戏对象,添加脚本控制地形

using UnityEngine;

using System.Collections;

using System.Collections.Generic;

public class SkyLineCloseManScript : MonoBehaviour {

public Transform prefab;

public int gameObjectCount;

public Vector3 startPosition;

Vector3 nextPosition;

public Vector3 maxSize;

public Vector3 minSize;

public int offSet;

Queue<Transform> queue;

void Start()

{

queue = new Queue<Transform>();

for(int i=0;i<gameObjectCount;i++)

{

Transform t = (Transform) GameObject.Instantiate(prefab);

queue.Enqueue(t);

}

nextPosition = startPosition;

for(int i=0;i<gameObjectCount;i++)

{

Recycle();

}

}

void Update()

{

if(RunnerScript.distance-queue.Peek().position.x >=offSet)

{

Recycle();

}

}

private void Recycle()

{

Vector3 scale = new Vector3(Random.Range(minSize.x, maxSize.x), Random.Range(minSize.y, maxSize.y), Random.Range(minSize.z, maxSize.z));

Vector3 position = nextPosition;

Transform t = queue.Dequeue();

position.x +=scale.x/2 ;

position.y += scale.y/2;

t.localScale = scale;

t.position = position;

nextPosition.x += scale.x;

queue.Enqueue(t);

}

}


3. 创建一个cube对象(runner),添加脚本使runner沿x轴移动

using UnityEngine;

using System.Collections;

public class RunnerScript : MonoBehaviour {

public static float distance;

void Update()

{

transform.Translate(5f*Time.deltaTime,0,0);

distance = transform.position.x;

}

}


附效果图一张:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: