zoukankan      html  css  js  c++  java
  • 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上即可,添加预制对象。

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

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

  • 相关阅读:
    JS中短路运算符&&和||
    jadx 调整jvm参数
    python 面向对象(进阶篇)
    Python 面向对象(初级篇)
    python+requests接口自动化测试实战
    Jmeter-接口压测
    敬请指正-我进行单元测试的分享
    现在的开发都要懂测试了,为什么?这一份书单告诉你!
    你不得不看-自动化测试工程师面试总结:技术面试
    web自动化快速使用
  • 原文地址:https://www.cnblogs.com/wuzhang/p/wuzhang20150410.html
Copyright © 2011-2022 走看看