2d图片依次排列在屏幕中间(SpriteRenderer)
如图所示:
C#代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class SpriteRendererTest : MonoBehaviour {
List<Transform> list = new List<Transform>(); // 存储父物体的子对象
List<float> rendererWidthList = new List<float>(); // 存储子对象的宽度
private Vector3 centerPos = Vector3.zero; // 中心位置
private float offSet = 0.2f; //偏移量
private float length = 0.0f; // 初始化长度 void Start () {
// 遍历所有子对象
for (int i = ; i < gameObject.transform.childCount; i++) {
var child = gameObject.transform.GetChild(i);
var width = child.GetComponent<SpriteRenderer>().sprite.bounds.size.x;
if (i < gameObject.transform.childCount - )
{
length += width + offSet;
}
else {
length += width;
}
list.Add(child);
rendererWidthList.Add(width);
}
var startX = centerPos.x - length / 2.0f; //第一个子对象的左边界
foreach (var child in list)
{
int index = ;
child.transform.position = new Vector3(startX + rendererWidthList[index] / 2.0f, , );
startX = startX + offSet + rendererWidthList[index];
index += ;
}
}
}
lua代码:
-- 创建数组
local parent = UGameObject.Find("Parent")
local objectList = {}
local rendererWidthList = {}
for i = , parent.transform.childCount do
local child = parent.transform:GetChild(i - )
local renderer = child:GetComponent(typeof(USpriteRenderer))
local width = renderer.sprite.bounds.size.x
table.insert(objectList, child)
table.insert(rendererWidthList, width)
end local length = -- 初始化长度
local offSet = 0.2 -- 间隔
for i = , #objectList do
local obj = objectList[i]
local width = rendererWidthList[i]
if i == #objectList then
length = length + width
break
end
length = length + width + offSet
end local centerPos = Vector3.zero -- 中心位置
local startX = centerPos.x - length / -- 初始位置 for i = , #objectList do
local obj = objectList[i]
local width = rendererWidthList[i]
obj.transform.position = Vector3(startX + width / , , )
startX = startX + width + offSet
end
2d图片依次排列在屏幕中间(SpriteRenderer)的更多相关文章
- WPF编程,通过DoubleAnimation控制图片的透明度,将重叠的图片依次显示。
原文:WPF编程,通过DoubleAnimation控制图片的透明度,将重叠的图片依次显示. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307 ...
- 基于jQuery图片自适应排列显示代码
基于jQuery图片自适应排列显示代码.这是一款基于jquery.flex-images插件实现的类似谷歌图片流效果.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div ...
- NGUI如何使2D图片按像素1:1显示在屏幕上
NGUI版本为3.5.1. 将camera 设置为正交模式,size值设为1. UIRoot(2D)有3种缩放样式: 1.PixelPerfect.UI严格按照指定的像素大小显示,不会随着屏幕的分辨率 ...
- 横向图片墙排列算法及demo
演示地址: http://codeman35.itongyin.com:19005/v1/9gg_v2.html 功能: 按照不同的图片比例,进行横向9宫格排列,原则是尽量排列的整齐,不要多余出来格子 ...
- Android 图片文件操作、屏幕相关、.9图片的理解
一:Android图片操作 1.存储bitmap到本地文件系统 public static void bitmapToFile(Bitmap bitmap, String uri) { if(!ex ...
- 从2D图片生成3D模型(3D-GAN)
https://blog.csdn.net/u014365862/article/details/54783209 3D-GAN是使用生成对抗网络学习2D图像到3D模型的映射,生成网络负责生成3D模型 ...
- ajax读取图片后排列问题(先加载完图片再排列)
网上找了个瀑布流的图片排列插件.从数据库读取图片路径后显示时出现了位置重叠问题. $.ajax({ type: "POST", url: "index.aspx" ...
- html中图片自适应浏览器和屏幕,宽度高度自适应
1.(宽度自适应):在网页代码的头部,加入一行viewport元标签. <meta name="viewport" content="width=device-wi ...
- HMS Core AR Engine 2D图片/3D物体跟踪技术 助力打造更智能AR交互体验
AR技术已经被广泛应用于营销.教育.游戏.展览等场景.通过2D图像跟踪技术和3D物体跟踪技术,用户只需使用一台手机进行拍摄,即可实现海报.卡牌等平面物体以及文物.手办等立体物体的AR效果.尽管近年来2 ...
随机推荐
- mysql 命令修复表
如果在断电.硬重启服务器等情况下,可能会造成有些表损坏,这时就需要修复 修复表前需要将mysql停止 centos7 用 systemctl stop mysqld.service 来停止 然后进入到 ...
- 十八、Python面向对象之魔术方法
1.类的比较 class A(object): def __init__(self,value): self.value = value def __eq__(self,other): return ...
- Mock Server之与被测系统对接(python+flask)
第一步:获取入参与返回结果 先通过postman.jmeter.自己写脚本之类的方式请求我们的mock server,试着获取入参与对应的返回值,这里我用的是robotframework + Requ ...
- LuoguP5540:【模板】最小乘积生成树(几何逼近)
题意:给定N点,M边,每条边有两个属性(a,b),现在让你选N-1条边出来,然后使得∑a*∑b最小.N<200,M<1e4: 思路:我们把∑a看成x,∑b看成y,那么一个方案对应一个二维坐 ...
- opencart忘记登录密码怎么办
今天一位客户问opencart忘记登录密码怎么办,他们公司内部有几位员工同时在管理,可能是哪位同事把密码给改了没有跟大家说,现在都登录不了.这个只能数据库修改了.进入opencart的数据库,找到oc ...
- 查看linux服务器配置信息命令
查看 cpu信息: cat /proc/cpuinfo 查看内存信息: grep MemTotal /proc/meminfo 查看操作系统信息: uname -a 查看centos版本信息: cat ...
- Http请求头中 X-Requested-With
String requestedWith = ((HttpServletRequest) request).getHeader("X-Requested-With"); 如果 re ...
- freeradius编译安装+mysql配置
参考文档: freeradius 官网的wikihttp://wiki.freeradius.org/Home ubuntu freeradius搭建教程 http://yustanto.com/fr ...
- Educational Codeforces Round 78 (Rated for Div. 2) C - Berry Jam(前缀和)
- rpm 子包创建学习
rpm 在打包的时候,可以创建子包,这样可以清晰的进行软件包的拆分,以下是结合官方文档学习 的一个实践 预备条件 需要安装rpmdevtools spec 文件 内容 Name: foo Versio ...