Unity 梯子生成算法

来源:互联网 发布:免id下载软件 编辑:程序博客网 时间:2024/04/29 14:24

这位同学太有才了,写得都非常好- -

http://www.cnblogs.com/wuzhang/p/wuzhang20150409.html

using UnityEngine;public class PadelCreate : MonoBehaviour{    public GameObject prb_padel;    public float angel = 30;    public int leftCount = 50;    public int rightCount = 50;    private Vector3 lastOnePosition;    void Start()    {        if (prb_padel == null)            prb_padel = GameObject.CreatePrimitive(PrimitiveType.Cube);        anyAngelPadel(angel);    }    /// <summary>    /// 任意角度的楼梯实例    /// </summary>    /// <param name="angel"></param>    void anyAngelPadel(float angel)    {        float hudu = (angel / 180) * Mathf.PI;        //上楼梯        for (int i = 0; i < leftCount; i++)        {            GameObject tmpPadel = (GameObject)Instantiate(prb_padel);            float yy = i * Mathf.Tan(hudu);            tmpPadel.transform.position = new Vector3(-7 + i, -2 + yy, 0);            lastOnePosition = tmpPadel.transform.position;        }        //水平方向生成两个        for (int i = 0; i < 2; i++)        {            GameObject tmpPadel = (GameObject)Instantiate(prb_padel);            tmpPadel.transform.position = new Vector3(lastOnePosition.x + 1, lastOnePosition.y, 0);            lastOnePosition = tmpPadel.transform.position;        }        //下楼梯        for (int i = 0; i < rightCount; i++)        {            GameObject tmpPadel = (GameObject)Instantiate(prb_padel);            float yy = i * Mathf.Tan(hudu);            tmpPadel.transform.position = new Vector3(lastOnePosition.x + i, lastOnePosition.y - yy, 0);            //lastOnePosition = tmpPadel.transform.position;        }    }}

50*50
这里写图片描述
6*6
这里写图片描述

0 0
原创粉丝点击