//保存需要排序的精灵容器  public GameObject[] Sprites;public Transform centrePoint;//椭圆的中心点  public float anglecheap = 25;//每个方块间的角度偏移  //保存位置点  private List<Vector3> location = new List<Vector3>();private float angle = 270;//第一个保证是中心位置的,当前到的角度  private float firstangle = 270;//记录第一个角度,用以左右对称  public float r = 90;//椭圆的两个弦长  public float R = 450;int size = 0;//即对象数组的一半,奇数为总长度+1/2,偶数为一半<pre name="code" class="csharp">// Use this for initialization  void Start(){//初始化size  if (Sprites.Length % 2 == 0){size = Sprites.Length / 2;}else{size = (Sprites.Length + 1) / 2;}//排序分级显示  makespriteSort();//重置渲染层级  ResetDeep();}//给这些精灵排序显示  void makespriteSort(){//取出椭圆的中心点  Vector3 center = centrePoint.position;//判断该数组的个数奇偶性,如果是偶数,那么需要留出一个来放到对面  if (Sprites.Length % 2 == 0){//右半边  for (int i = 0; i < size; i++){Sprites[i].transform.position = getPosition(angle, center);angle += anglecheap;}//第一个已经得是左边了  angle = firstangle - anglecheap;//左半边  for (int i = size; i < Sprites.Length - 1; i++){Sprites[i].transform.position = getPosition(angle, center);angle -= anglecheap;}//最后一个  Sprites[Sprites.Length - 1].transform.position = getPosition(firstangle - 180, center);return;}//如果不是偶数,那么出去中间那个,正好正常显示  else{//右半边  for (int i = 0; i < size; i++){Sprites[i].transform.position = getPosition(angle, center);angle += anglecheap;}//第一个已经得是左边了  angle = firstangle - anglecheap;//左半边  for (int i = size; i < Sprites.Length; i++){Sprites[i].transform.position = getPosition(angle, center);angle -= anglecheap;}return;}}//获取当前角度的坐标  Vector3 getPosition(float _angle, Vector3 _centerposition){float hudu = (_angle / 180f) * Mathf.PI;float cosx = Mathf.Cos(hudu);float sinx = Mathf.Sin(hudu);float x = _centerposition.x + R * cosx;float y = _centerposition.y + r * sinx;Vector3 point = new Vector3(x, y, 0);//添加到容器保存  location.Add(point);return point;}//根据当前左右容器调整所有控件的渲染层级  void ResetDeep(){int  dep = 0;//右半边  for (int i = size - 1; i >= 0; i--){Sprites[i].GetComponent<Transform>().SetSiblingIndex(dep);dep++;}//dep = 0;//左半边  for (int i = Sprites.Length - 1; i >= size; i--){Sprites[i].GetComponent<Transform>().SetSiblingIndex(dep);dep++;}}

unity中将多个图片进行椭圆排序相关推荐

  1. Unity UGUI 数字使用图片显示-BMFont

    Unity UGUI 数字使用图片显示-BMFont BMFont 之前使用Cocos引擎的时候需要用到艺术字也就是将数字使用美术给的图片来代替显示,也就是要做一个新字体专门用来显示艺术字,当时用的是 ...

  2. Unity搭建简单的图片服务器

    具体要实现的目标是:将图片手动拷贝到服务器,然后在Unity中点击按钮将服务器中的图片加载到Unity中. 首先简答解释下 WAMP(Windows + Apache + Mysql + PHP),一 ...

  3. Unity Shader 之 正方形图片四角圆角的简单实现(不用遮罩Mask)

    Unity Shader 之 正方形图片四角圆角的简单实现(不用遮罩Mask) 目录 Unity Shader 之 正方形图片四角圆角的简单实现(不用遮罩Mask)

  4. Unity中将SampleScenes/AircraftJet2Axis飞行棋替换自己模型

    一.目的 1.想知道:Unity中将SampleScenes/AircraftJet2Axis飞行棋替换自己模型 二.参考 1.[Unity/Tutorial]官方AircraftJetAI(四)喷射 ...

  5. [Unity]利用Mesh在Unity中绘制扇形图片

    背景 最近碰到个功能, 要画一个扇形图案, 如下图: 美术原图: 需求是这个图形跟随角色, 在角色背后, 并且每个角色的扇形角度可能不同. So, NGUI和UGUI很好用的FilledType是用不 ...

  6. Unity中将3D模型显示在UI上或者显示在UI前面

    标题 Unity中将3D模型显示在UI上或者显示在UI前面 一.将3D模型显示在UI上-使用RawImage和Render Texture组合实现效果 1.创建一个RawImage控件 2.创建一个R ...

  7. JS的平凡之路--简易的图片拖拽排序

    由HTML5的拖放API,实现的简易图片拖放效果. 一.HTML5拖放API的知识点   首先我们得知道元素怎么才可以被拖放,需要设置它们的draggable属性,其中img和a标签的dragable ...

  8. Unity中实时更新图片的方法探究

    背景 最近继续在做VR会议,在共享桌面这一块遇到了一个棘手的问题.在会议中,共享的桌面是通过发送一帧一帧的图片来实现的.在Unity中需要把图片渲染出来. 3个难点 在Unity实时的渲染图片有3个难 ...

  9. Unity中将图片改为支持透明背景模式

    1.全选中所有的图片资源 2.在Inspector中选择Texture->Editor GUI and Legacy GUI 3.选择Apply即可 4.现在看图片就已经可以生成透明的背景

最新文章

  1. Discovering Urban Functional Zones Using Latent Activity Trajectories TKDE 2015
  2. C/C++中 static 的作用
  3. OS / Linux / Select 调用流程
  4. 引入OAuth2的主要目的
  5. spring简单入门,入门案列的执行流程,图例
  6. 是Excel的图,不!是R的图
  7. 在实际项目中应用NHibernate
  8. Linux 2.6 和安卓一样吗,Linux2.4和Linux2.6设备驱动的一些区别
  9. Answers To The Questions from GiGabyte
  10. python字典添加主键_字典的常见操作
  11. 用组织分析框架分析阿里巴巴集团
  12. STM32F103移植程序到STM32F107注意事项
  13. 自动换挡型数字频率计
  14. Android app打开手机应用市场上对应的应用
  15. Java项目学校教务教学管理系统源码,基于springboot+mybatis+layui+shiro+jquery开发
  16. 计算机基础2008版第7次作业,中医药大学-计算机基础2008版-1-7次作业.doc
  17. linux上的客户端连接window上的服务器
  18. python如何创建一个文件夹_利用Python怎么创建一个文件夹
  19. yaml存储到文件服务器,通过编写k8s的资源清单yaml文件部署gitlab服务
  20. splitstring函数在C语言中的,C语言 字符串Split功能实现

热门文章

  1. 面试回答,JVM内存模型/内存空间:运行时数据区
  2. pta 7-34 a+aa+aaa+.. (10 分)
  3. vue 条形码--JsBarcode
  4. Centos7安装fish shell,介绍及使用
  5. 不属于c语言程序运算符,以下选项中不属于C语言程序运算符的是( )
  6. JAVA体育用品在线商城系统-springboot【数据库设计、源码、开题报告】
  7. 每个程序员都应该阅读的最有影响力的书是什么?
  8. 逻辑卷管理器-LVM-Logical Volume Manager 基本操作
  9. ID card No.
  10. Java基础知识总结——java快速入门