Unity之生成梯子算法的实现。

1.通过预制物体动态生成角度可设置的梯子形状。

  1.1 主要涉及到的数学知识点,角度与弧度的转化。

    弧度=角度乘以π后再除以180

    角度=弧度除以π再乘以180

  1.2 三角函数

       

  在这里只使用正切函数tan,简单的推理逻辑如下:

    

  2.1下面开始看代码了padelCreate.cs

 using UnityEngine;
 using System.Collections;

 public class padelCreate : MonoBehaviour
 {
     public GameObject prb_padel;
     ;
     private Vector3 lastOnePosition;
     // Use this for initialization
     void Start ()
     {
         anyAngelPadel(angel);
     }

     /// <summary>
     /// 任意角度的楼梯实例
     /// </summary>
     /// <param name="angel"></param>
     void anyAngelPadel(float angel)
     {
         ) * Mathf.PI;
         //上楼梯
         ; i < ; i++)
         {
             GameObject tmpPadel = (GameObject)Instantiate(prb_padel);
             float yy = i * Mathf.Tan(hudu);
             tmpPadel.transform.position =  + i, - + yy, );
             lastOnePosition = tmpPadel.transform.position;
         }
         //水平方向生成两个
         ; i < ; i++)
         {
             GameObject tmpPadel = (GameObject)Instantiate(prb_padel);
             tmpPadel.transform.position = ,lastOnePosition.y, );
             lastOnePosition = tmpPadel.transform.position;
         }
         //下楼梯
         ; i < ; i++)
         {
             GameObject tmpPadel = (GameObject)Instantiate(prb_padel);
             float yy = i * Mathf.Tan(hudu);
             tmpPadel.transform.position = );
             //lastOnePosition = tmpPadel.transform.position;
         }

     }

 }

  在Unity的结构如下:

  

  准备工作完成了,在Unity中运行吧!

  

  绘制完成了。

Unity 梯子生成算法的更多相关文章

  1. 一个UUID生成算法的C语言实现 --- WIN32版本 .

    一个UUID生成算法的C语言实现——WIN32版本   cheungmine 2007-9-16   根据定义,UUID(Universally Unique IDentifier,也称GUID)在时 ...

  2. 分布式全局不重复ID生成算法

    分布式全局不重复ID生成算法 算法全局id唯一id  在分布式系统中经常会使用到生成全局唯一不重复ID的情况.本篇博客介绍生成的一些方法. 常见的一些方式: 1.通过DB做全局自增操作 优点:简单.高 ...

  3. C++ 基于凸包的Delaunay三角网生成算法

    Delaunay三角网,写了用半天,调试BUG用了2天……醉了. 基本思路比较简单,但效率并不是很快. 1. 先生成一个凸包: 2. 只考虑凸包上的点,将凸包环切,生成一个三角网,暂时不考虑Delau ...

  4. C++ 凸包生成算法

    由于我的极差记忆力,我打算把这个破玩意先记下来.因为以后会有改动(Delaunay三角网生成算法),我不想把一个好的东西改坏了... 好吧-- 凸包生成算法,: 1.先在指定的宽(width)高(he ...

  5. RocketMQ msgId生成算法

    当我们用RocketMQ发送信息的时候通常都会返回如下信息: SendResult [sendStatus=SEND_OK, msgId=0A42333A0DC818B4AAC246C290FD000 ...

  6. 分布式系统的唯一id生成算法你了解吗?

    在分库分表之后你必然要面对的一个问题,就是id咋生成? 因为要是一个表分成多个表之后,每个表的id都是从1开始累加自增长,那肯定不对啊. 举个例子,你的订单表拆分为了1024张订单表,每个表的id都从 ...

  7. 转:体积阴影(Shadow Volumes)生成算法

    下面以最快的速度简单谈谈阴影生成技术,目前普遍采用的一般有三种:Planar Shadow.Shadow Mapping和Shadow Volume,前者类似投影,计算最简单,缺点只能绘制抛射在平面上 ...

  8. STL_算法_04_算术和生成算法

    ◆ 常用的算术和生成算法: 1.1.求和( accumulate 是求和的意思)(对指定范围内的元素求和,然后结果再加上一个由val指定的初始值.) T accumulate(iteratorBegi ...

  9. ES批量索引写入时的ID自动生成算法

    对bulk request的处理流程: 1.遍历所有的request,对其做一些加工,主要包括:获取routing(如果mapping里有的话).指定的timestamp(如果没有带timestamp ...

随机推荐

  1. Qt导出Excel的简单实现

    QAxObject对COM对象进行了封装,QAxObject派生自QAxBase,而后者提供了一组API通过IUnknown(不清楚IUnknown的同学可以去看看COM对象模型)指针直接访问COM对 ...

  2. UISwitch + UIimage - 初识IOS

    这里解释一个小例子,希望对你有点帮助,利用UISwitch控制UIimage的动画效果 先定义一个数组,用来存放照片,现在定义数组有一个特别简单的方法: NSArray *image1 = @[]; ...

  3. CentOs7下systemd管理知识要点

    centOs7的一个巨大的变动就是用systemd取代了原来的System V init.systemd是一个完整的软件包,安装完成后有很多物理文件组成,大致分布为,配置文件位于/etc/system ...

  4. Android 使用monkey自动测试

    很简单的一个monkey使用流程: 首先创建一个monkey脚本test.txt,例如一个简单的反复测试拍照功能的脚本: # Start of Script type= user count= 49 ...

  5. Oracle CASE WHEN 用法介绍[Z]

    Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ...

  6. c#程序为PDF文件填写表单内容

    众所周知,PDF文件一般情况下是无法修改的,如果你有一张现成的PDF表格,这时想通过编程实现从数据库或者动态生成内容去填写这张表格,就会有些问题了,首先我们要解决以下2个重要的问题: 1.如何将内容写 ...

  7. K - Ignatius and the Princess IV

    Description         "OK, you are not too bad, em... But you can never pass the next test." ...

  8. (转) Dynamic memory

      In the programs seen in previous chapters, all memory needs were determined before program executi ...

  9. android 开发环境搭建 (转)

    最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是一直没有搭建开发环 境去学习,Android的更新速度比较快了,Android1 ...

  10. 十进制二进制之间的转化 PHP算法

    [ 十进制转二进制 ] function test($var){ $func = function($i){ if($i < 2){ return $i; } $return['int'] = ...