Unity 之圆环算法
首先我们要明白圆环生成的原理,其实说白了并不是圆环,而是圆。因为我们使用的预制物体时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 之圆环算法相关推荐
- 基于Unity利用四叉树算法实现二维碰撞检测
前言 在游戏制作过程中会经常遇到碰撞检测,假设在二维平面上有n个物体,那么检测每个物体的碰撞都要检测n-1次,如果要检测所有物体的碰撞,那么需要计算n*(n-1)/2次,时间复杂度为n的平方,四叉树算 ...
- Unity开发-网络.算法.平台相关知识!
A. 网络相关知识 一.TCP 1.面向数据流.可靠.能保证消息到达顺序. 2.滑动窗口.控制发送量,发送方只能发送窗口内大小的数据包.防止发送方发送的数据过多,接收方无法处理的情况. 3.Nagle ...
- unity C# 常用算法 和 算法复杂度
1.稳定性 归并排序.冒泡排序.插入排序.基数排序是稳定的 选择排序.快速排序.希尔排序.堆排序是不稳定的 2.时间复杂度 最基础的四个算法:冒泡.选择.插入.快排中,快排的时间复杂度最小O(n*lo ...
- Unity制作圆环进度条加载场景资源
第一步:场景内UI圆环的搭建 新建一张Panel作为背景图,在Panel下新建一张Image命名为RoundImage作为外圆环,在外圆环下新建一张image命名为RoundLoading作为内圆环, ...
- Unity 子弹射击算法
主要参考链接中的博主 其实最为关键的就是LookAt这个方法,让子弹看向屏幕中心点检测到的位置 参考链接地址 https://assetstore.unity.com/packages/essenti ...
- unity使用Dijkstra算法实现自动寻路
前言 最近开始做新的功能模块--章节关卡.在做的过程中看到一个要求:根据当前关卡位置,点击任意已开放的关卡,主角自动寻路至该处. 数据准备 关卡配置表如下: map = {[1] = { coordi ...
- Unity中 噪音算法
主要是利用Unity的 Mathf.PerlinNoise 函数(柏林噪声)的不同寻常的功能. https://docs.unity3d.com/ScriptReference/Mathf.Per ...
- unity 网格切割算法讲解
算法主要的方法为 public static List<List<Vector3>> GetEndCuttingPolygonVerticles(List<Vect ...
- unity开发 斗地主算法—提示AI(提示出牌)
牌型的定义在http://blog.csdn.net/csdn_cjt/article/details/78593140 第一章 这是第四章 下面是代码 #region 提示出牌 public sta ...
- unity开发 斗地主算法—比较两个手牌的大小
牌型的定义在http://blog.csdn.net/csdn_cjt/article/details/78593140 第一章 这是第二章 下面是代码 #region isSelectCardCan ...
最新文章
- 图像处理工具包ImagXpress的多页TIFF编辑API的使用(1)
- Windows Phone7天初学(4):数据绑定
- 判断字符串1是否在字符串2中出现的方法
- linux内核 mpls,将MPLS编译进linux内核中
- java中的DES,AES,BASE64,MD5和Cipher类\MessageDigest类
- 接口测试要测试什么?
- 算法的时间复杂度——大O分析法(转载)
- Python调整图片透明度
- ANSYS命令流——圆柱体网格划分
- Using RCU‘s CPU Stall Detector(待更新)
- 【转】宁做创业狼,不做打工狗(ZT)
- 微生物qPCR定量检测
- iPhone7产业链不为人知的辛酸
- 最新uniapp打包IOS详细步骤
- word模板填充数据
- Oracle作业第四章
- js数组array的常用方法
- 学计算机励志名言,适合程序员的励志名言
- bigsur cdr文件_macOS BigSur 11.0.1(20B29)-原版DMG黑苹果镜像
- IFrame语法小全 --使用iframe内的函数
热门文章
- 【hdu3183】A Magic Lamp(思维+st表(含模版))
- windows php7怎么配置,PHP7在windows7中的环境配置详解
- ad 4层板设计实例文件_独家数据 | 1619Fall美研传媒类专业1590+申请实例(含大众传播、新闻学、公共关系、新媒体、整合营销等)...
- php中级联,php级联
- 怎么判断间隙过渡过盈配合_什么是间隙配合、过盈配合、过渡配合?它们在汽车上有哪些应用?...
- 自动驾驶 9-2: 卡尔曼滤波器和偏置BLUEs Kalman Filter and The Bias BLUEs
- 自动驾驶7-3 最终项目解决方案 Final Project Solution
- 翻译:Google研究:回顾2020年并展望2021年 - Jeff Dean
- 极客大学架构师训练营 听课总结 - 架构视图,设计文档 -- 第二课
- No module named ‘wrapt‘