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; } }
附效果图一张:
相关文章推荐
- Unity3D屏幕特效合成
- 2016-1-19-Unity学习日程-跳跃跑酷
- Unity3d 着色器语法(Shader)
- 初学unity(简单场景制作)
- 编写Unity3D着色器的三种方式
- 关于Unity中的_MainTex_ST的一些疑惑
- 初学unity3D—20160119
- UNITY学习的第二天总结
- 【Unity3D自学记录】鼠标移动三维物体
- unity基础开发 1. 射线&碰撞器的原理和用法
- 使用MonoDevelop调试Unity3D的正确步骤
- Unity炮弹拖尾和弓箭的抛物运动方法
- Unity3D的四种坐标系
- Unity 3D中的 SetActive() 与 OnEnable()、OnDisable()要注意的
- unity中刷路点
- 【小松教你手游开发】【unity实用技能】Unity3D_NGUI_性能优化实践_CPU卡顿
- 如何让Maya中的相机和Unity相机的FOV(Angle of View)对上
- 【小松教你手游开发】【unity实用技能】Unity3D中Assetbundle技术使用心得
- Unity3d 开发(七)AssetBundle组织目录
- Unity学习日记-使用脚本进行音频资源的读取,Resources.LoadAll