unity中将多个图片进行椭圆排序
//保存需要排序的精灵容器
public GameObject[] Sprites;
public Transform centrePoint;//椭圆的中心点
public float anglecheap = ;//每个方块间的角度偏移
//保存位置点
private List<Vector3> location = new List<Vector3>();
private float angle = ;//第一个保证是中心位置的,当前到的角度
private float firstangle = ;//记录第一个角度,用以左右对称
public float r = ;//椭圆的两个弦长
public float R = ;
int size = ;//即对象数组的一半,奇数为总长度+1/2,偶数为一半<pre name="code" class="csharp">// Use this for initialization
void Start()
{//初始化size
if (Sprites.Length % == )
{
size = Sprites.Length / ;
}
else
{
size = (Sprites.Length + ) / ;
}
//排序分级显示
makespriteSort();
//重置渲染层级
ResetDeep();
}
//给这些精灵排序显示
void makespriteSort()
{
//取出椭圆的中心点
Vector3 center = centrePoint.position;
//判断该数组的个数奇偶性,如果是偶数,那么需要留出一个来放到对面
if (Sprites.Length % == )
{
//右半边
for (int i = ; 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; }
//最后一个
Sprites[Sprites.Length - ].transform.position = getPosition(firstangle - , center); return;
}
//如果不是偶数,那么出去中间那个,正好正常显示
else
{
//右半边
for (int i = ; 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, );
//添加到容器保存
location.Add(point);
return point;
} //根据当前左右容器调整所有控件的渲染层级
void ResetDeep()
{
int dep = ;
//右半边
for (int i = size - ; i >= ; i--)
{
Sprites[i].GetComponent<Transform>().SetSiblingIndex(dep);
dep++;
}
//dep = 0;
//左半边
for (int i = Sprites.Length - ; i >= size; i--)
{
Sprites[i].GetComponent<Transform>().SetSiblingIndex(dep);
dep++;
}
}
unity中将多个图片进行椭圆排序的更多相关文章
- Unity搭建简单的图片服务器
具体要实现的目标是:将图片手动拷贝到服务器,然后在Unity中点击按钮将服务器中的图片加载到Unity中. 首先简答解释下 WAMP(Windows + Apache + Mysql + PHP),一 ...
- unity 内存中切割图片
一般的说我们切割图片是将一张图片资源切割成更小的图片资源,也就是说在资源上就进行了切割,比如ugui上的切割方法. 如果我们有一些情况比如做拼图,可能让玩家自己选择自己的生活照作为拼图的原图. 那么我 ...
- 如何对sharepoint图片库的文件夹的图片按照时间排序并分页显示
/// <summary> /// 获取图片库第一层文件夹--根据文件夹名称排序 /// </summary> /// <param name="siteUrl ...
- Unity 读取资源(图片)
方法一: 采用Resource.Load方法读取,读取在Unity中Assets下Resources目录下的资源名(不采用后缀). //图片放在Asset/Resources/ Texture2D t ...
- C#与unity中base64string和图片互转
C#: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...
- iOS相册中图片按照时间排序
ios相册默认是按照时间从过去到现在排列,图片顺序有正序和逆序,group可以用以下方法来选择顺序 /** @param NSIndexSet 需要获取的相册中图片范围 @param NSEnumer ...
- Unity之读取本地图片
1.下载Opencv for unity. 2.把OpenCVForUnity下的StreamingAssets拖到Assets下. 3.点击Tools->opencv for unity-&g ...
- Unity加载本地图片的2种方式
1. 使用 WWW 加载,详细查看 unity3d 官方文档. 2. 使用 System.IO 加载,lua 代码如下: local File = luanet.import_type("S ...
- Unity加载外部图片
在这里记录一下在 Unity3D 中分别使用 WWW 和 IO 流加载外部图片 使用 WWW 加载 /// <summary> /// 使用 WWW 加载图片,并赋值给 _rawImage ...
随机推荐
- cocos2d-x JS 重力感应监听事件
说明 : 下面监听中的 acc属性 里面有很多可以使用的值 . 添加监听 : cc.inputManager.setAccelerometerEnabled(true); cc.eventManage ...
- linux下安装svn服务器
http://www.cnblogs.com/zhoulf/archive/2013/02/02/2889949.html 安装说明系统环境:CentOS-6.3安装方式:yum install (源 ...
- 221. Maximal Square(动态规划)
Given a 2D binary matrix filled with 0's and 1's, find the largest square containing only 1's and re ...
- powerdesigner相关记录
背景 项目逐步开始规范化,表设计直接用designer来,然后生成语句,到oracle数据库,把相关的操作等记录一下, designer版本:15.1 oracle版本:11.2,64位 oracle ...
- 《CSS世界》读书笔记(十)
<!-- <CSS世界>张鑫旭著 --> 温和的padding属性 因为默认的box-sizing是content-box,所以使用padding会增加元素的尺寸. 尺寸表现对 ...
- Java集群优化——使用Dubbo对单一应用服务化改造
之前,我们讨论过Nginx+tomcat组成的集群,这已经是非常灵活的集群技术,但是当我们的系统遇到更大的瓶颈,全部应用的单点服务器已经不能满足我们的需求,这时,我们要考虑另外一种,我们熟悉的内容,就 ...
- Flutter之MaterialApp使用详解
来自: https://cloud.tencent.com/developer/article/1337184 字段 类型 navigatorKey(导航键) GlobalKey<Navigat ...
- 分布式系列 - dubbo服务telnet命令
dubbo服务发布之后,我们可以利用telnet命令进行调试.管理.Dubbo2.0.5以上版本服务提供端口支持telnet命令,下面我以通过实例抛砖引玉一下: 1.连接服务 测试对应IP和端口下的d ...
- spring-cloud-config-server——Environment Repository
参考资料: https://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.4.0.RELEASE/single/spring-cl ...
- C#三层架构
C#三层架构 三层架构分为:表现层(UI(User Interface)).业务逻辑层(BLL(Business Logic Layer)).数据访问层(DAL(Data Access Layer)) ...