实现半圆环状UI排版
来源:互联网 发布:主域名服务器 编辑:程序博客网 时间:2024/05/17 06:13
用于实现塔防游戏中,点击塔基后出现环形选项面板的效果
效果图:
/// <summary> /// 中心点距离 /// </summary> private float Radius = 0.5f; void Start() { RepostionCircle(); } void RepostionCircle() { var childList = GetChildList(); float baseAngle = 0, spaceAngle = 0; var centerPos = transform.position; if (childList.Count == 1) { baseAngle = -90; float x = centerPos.x + Radius * Mathf.Cos(baseAngle * 3.14f / 180f); float y = centerPos.y + Radius * Mathf.Sin(baseAngle * 3.14f / 180f); childList[0].transform.position = new Vector3(x, y, centerPos.z); return; } // 将所有子节点按照世界坐标轴X大小排序 childList.Sort(SortUtils.SortByWorldposX); // 由于角度递减方式是采用顺时针方式显示的 // 所以此处需要将list倒序 childList.Reverse(0, childList.Count); baseAngle = -(180f / (childList.Count + 1)); spaceAngle = (180f / (childList.Count + 1)); for (int i = 0; i < childList.Count; i++) { float x = centerPos.x + Radius * Mathf.Cos(baseAngle * 3.14f / 180f); float y = centerPos.y + Radius * Mathf.Sin(baseAngle * 3.14f / 180f); childList[i].transform.position = new Vector3(x, y, centerPos.z); baseAngle -= spaceAngle; } } public List<Transform> GetChildList() { Transform myTrans = transform; List<Transform> list = new List<Transform>(); for (int i = 0; i < myTrans.childCount; ++i) { Transform t = myTrans.GetChild(i); list.Add(t); } return list; }
阅读全文
0 0
- 实现半圆环状UI排版
- Android 半圆矩形的实现
- 自定义view实现半圆环
- 文字如何实现完美UI?文本排版设计告诉你
- 网店UI设计排版
- Android UI 排版
- Android半圆菜单按钮的简单实现
- 自定义View---实现半圆环形进度条
- 自定义控件:实现半圆滚动菜单效果
- Android自定义view 实现半圆环
- Android自定义view 实现半圆环
- hdu1016(dfs实现环状全排序)
- UVa 1584 求余实现环状串
- Android UI之半圆式卫星菜单(无动画)
- 使用shape 自定义ui之渐变半圆阴影
- 3-6 环状序列(如何实现环状字符串的比较)
- Android文本排版实现
- Sublime实现自动排版
- io操作之File类
- 创建Cocoapods Private 踩过的那些坑
- 企业级 Web 网站安全解决方案揭秘
- 典型静态方法的实现(algs4)
- UVA 133
- 实现半圆环状UI排版
- Oracle中rownum与order by的执行顺序
- vector
- Codeforces R374 Div2
- C# 生成强命名程序集,并添加到GAC
- 2017多校训练赛第四场 HDU 6070(二分答案+线段树+扫描线)
- 51nod(第K大的数)
- 转载--时间与空间复杂度总结
- 【php】ThinkPHP搭建百度Ueditor富文本编辑器