首先我们要明白圆环生成的原理,其实说白了并不是圆环,而是圆。因为我们使用的预制物体时Cube(物体本身是有大小的)难免会有发生实物的折叠看起来给人的感觉是圆环而已。

1.1 几何中我们要画一个圆,因为圆的标准表达式是

 圆心为(a,b),半径为r。那么我们只要知道圆心和半径就可以了。

  

2.1 我们只要知道圆心,半径,和旋转弧度就可以了。

  在Unity中创建测试工程,添加代码circles.cs

  

 1 using UnityEngine;
 2 using System.Collections;
 3
 4
 5 public class circle : MonoBehaviour
 6 {
 7     public GameObject circleModel;
 8     //旋转改变的角度
 9     public int changeAngle = 0;
10     //旋转一周需要的预制物体个数
11     private int count;
12
13     private float angle = 0;
14     public float r = 5;
15
16     // Use this for initialization
17     void Start()
18     {
19         count = (int)360 / changeAngle;
20         for (int i = 0; i < count; i++)
21         {
22             Vector3 center = circleModel.transform.position;
23             GameObject cube = (GameObject)Instantiate(circleModel);
24             float hudu = (angle / 180) * Mathf.PI;
25             float xx = center.x + r * Mathf.Cos(hudu);
26             float yy = center.y + r * Mathf.Sin(hudu);
27             cube.transform.position = new Vector3(xx, yy, 0);
28             cube.transform.LookAt(center);
29             angle += changeAngle;
30         }
31     }
32 }

代码第28行cube.transform.LookAt(center);所有生成的物体都是朝向圆心的。

将此脚本管道MainCamera上即可,添加预制对象。

运行即可看到效果确实是圆环。

如果有好的意见和建议请@我哦,共同学习!

转载于:https://www.cnblogs.com/wuzhang/p/wuzhang20150410.html

Unity 之圆环算法相关推荐

  1. 基于Unity利用四叉树算法实现二维碰撞检测

    前言 在游戏制作过程中会经常遇到碰撞检测,假设在二维平面上有n个物体,那么检测每个物体的碰撞都要检测n-1次,如果要检测所有物体的碰撞,那么需要计算n*(n-1)/2次,时间复杂度为n的平方,四叉树算 ...

  2. Unity开发-网络.算法.平台相关知识!

    A. 网络相关知识 一.TCP 1.面向数据流.可靠.能保证消息到达顺序. 2.滑动窗口.控制发送量,发送方只能发送窗口内大小的数据包.防止发送方发送的数据过多,接收方无法处理的情况. 3.Nagle ...

  3. unity C# 常用算法 和 算法复杂度

    1.稳定性 归并排序.冒泡排序.插入排序.基数排序是稳定的 选择排序.快速排序.希尔排序.堆排序是不稳定的 2.时间复杂度 最基础的四个算法:冒泡.选择.插入.快排中,快排的时间复杂度最小O(n*lo ...

  4. Unity制作圆环进度条加载场景资源

    第一步:场景内UI圆环的搭建 新建一张Panel作为背景图,在Panel下新建一张Image命名为RoundImage作为外圆环,在外圆环下新建一张image命名为RoundLoading作为内圆环, ...

  5. Unity 子弹射击算法

    主要参考链接中的博主 其实最为关键的就是LookAt这个方法,让子弹看向屏幕中心点检测到的位置 参考链接地址 https://assetstore.unity.com/packages/essenti ...

  6. unity使用Dijkstra算法实现自动寻路

    前言 最近开始做新的功能模块--章节关卡.在做的过程中看到一个要求:根据当前关卡位置,点击任意已开放的关卡,主角自动寻路至该处. 数据准备 关卡配置表如下: map = {[1] = { coordi ...

  7. Unity中 噪音算法

    主要是利用Unity的 Mathf.PerlinNoise   函数(柏林噪声)的不同寻常的功能. https://docs.unity3d.com/ScriptReference/Mathf.Per ...

  8. unity 网格切割算法讲解

    算法主要的方法为    public static List<List<Vector3>> GetEndCuttingPolygonVerticles(List<Vect ...

  9. unity开发 斗地主算法—提示AI(提示出牌)

    牌型的定义在http://blog.csdn.net/csdn_cjt/article/details/78593140 第一章 这是第四章 下面是代码 #region 提示出牌 public sta ...

  10. unity开发 斗地主算法—比较两个手牌的大小

    牌型的定义在http://blog.csdn.net/csdn_cjt/article/details/78593140 第一章 这是第二章 下面是代码 #region isSelectCardCan ...

最新文章

  1. 图像处理工具包ImagXpress的多页TIFF编辑API的使用(1)
  2. Windows Phone7天初学(4):数据绑定
  3. 判断字符串1是否在字符串2中出现的方法
  4. linux内核 mpls,将MPLS编译进linux内核中
  5. java中的DES,AES,BASE64,MD5和Cipher类\MessageDigest类
  6. 接口测试要测试什么?
  7. 算法的时间复杂度——大O分析法(转载)
  8. Python调整图片透明度
  9. ANSYS命令流——圆柱体网格划分
  10. Using RCU‘s CPU Stall Detector(待更新)
  11. 【转】宁做创业狼,不做打工狗(ZT)
  12. 微生物qPCR定量检测
  13. iPhone7产业链不为人知的辛酸
  14. 最新uniapp打包IOS详细步骤
  15. word模板填充数据
  16. Oracle作业第四章
  17. js数组array的常用方法
  18. 学计算机励志名言,适合程序员的励志名言
  19. bigsur cdr文件_macOS BigSur 11.0.1(20B29)-原版DMG黑苹果镜像
  20. IFrame语法小全 --使用iframe内的函数

热门文章

  1. 【hdu3183】A Magic Lamp(思维+st表(含模版))
  2. windows php7怎么配置,PHP7在windows7中的环境配置详解
  3. ad 4层板设计实例文件_独家数据 | 1619Fall美研传媒类专业1590+申请实例(含大众传播、新闻学、公共关系、新媒体、整合营销等)...
  4. php中级联,php级联
  5. 怎么判断间隙过渡过盈配合_什么是间隙配合、过盈配合、过渡配合?它们在汽车上有哪些应用?...
  6. 自动驾驶 9-2: 卡尔曼滤波器和偏置BLUEs Kalman Filter and The Bias BLUEs
  7. 自动驾驶7-3 最终项目解决方案 Final Project Solution
  8. 翻译:Google研究:回顾2020年并展望2021年 - Jeff Dean
  9. 极客大学架构师训练营 听课总结 - 架构视图,设计文档 -- 第二课
  10. No module named ‘wrapt‘