unity3d 随机范围内生成怪物
2015-01-12 19:31
239 查看
using UnityEngine; using System.Collections; public class BarrackManager : MonoBehaviour { public Transform[] address; public GameObject[] prefabs; // Use this for initialization void Start () { InvokeRepeating ("setBarrack",1,3f); } // Update is called once per frame void Update () { } void setBarrack(){ Transform tf = address [Random.Range (0, address.Length)]; Bound bound = getBound (tf); Vector3 pos = new Vector3 (bound.getRandomX(),bound.y,bound.getRandomZ()); Instantiate (prefabs[0],pos,Quaternion.identity); } Bound getBound(Transform tf){ Vector3 center = tf.collider.bounds.center; Vector3 extents = tf.collider.bounds.extents; Vector3 dL = new Vector3 (center.x - extents.x,center.y,center.z - extents.z); Vector3 dR = new Vector3 (center.x + extents.x,center.y,center.z - extents.z); Vector3 sR = new Vector3 (center.x + extents.x,center.y,center.z + extents.z); Vector3 sL = new Vector3 (center.x - extents.x,center.y,center.z + extents.z); Bound bound = new Bound (dL,dR,sR,sL,center.y); return bound; } class Bound{ public Vector3 dL; public Vector3 dR; public Vector3 sR; public Vector3 sL; public float y; public Bound(Vector3 dL,Vector3 dR, Vector3 sR, Vector3 sL,float y){ this.dL = dL; this.dR = dR; this.sR = sR; this.sL = sL; this.y = y; } public float getRandomX(){ float num = Random.Range (dL.x,dR.x); return num; } public float getRandomZ(){ float num = Random.Range (dL.z,sL.z); return num; } } }
相关文章推荐
- unity3d 在一个空心圆范围内随机生成物体
- 生成区间范围内的随机日期
- 转:在0~N(不包括N)范围内随机生成一个长度为M(M <= N)且内容不重复的数组
- 生成范围在[a,b]之中的随机整数
- java 生成指定范围的随机日期
- 编程珠玑: 13章 搜索 13.4使用整数结构,生成[0 ,maxval]范围内m各随机整数的有序序列 -------解题总结
- Java 随机生成一个范围内的数
- 生成范围在[a,b]之中的随机整数
- 随机生成30个数字(范围0-30)存到一个数组中,将数组中重复的数字去除,动态创建数组保存剩下的数字
- JS 浅谈生成指定范围内随机整数的五种方法
- Sql中随机生成指定范围内的汉字
- 程矢Axure夜话:程序员眼中的原型设计视频教程之生成随机范围的整数
- 生成范围在[a,b]之中的随机整数
- 随机生成范围在1到10之间10个不相同的数 Unity C#
- ASP.NET生成两个日期范围内随机时间的实现方法
- SQL语句 对表按某几个字段分组,并生成组内记录数范围内的随机序号.
- java生成某个范围内的随机时间
- shell 生成指定范围随机数与随机字符串 .
- javascript 随机生成一个范围值 random[min,max]
- 随机生成 50 个数字,每个数字的范围在 [10, 50] 之间,统计每个数字出现的次数,最后将每个数字和它出现的次数打印出来