赞
踩
加载本地图片功能接口
- public void LoadLocalTextures(){
-
- string imgType="*.BMP|*.JPG|*.PNG"; //需要加载的图片类型后缀
- string[] imgTypes=imgType.Split('|');
- for (int i = 0; i < ImgType.Length; i++)
- {
- string[] s2 = Directory.GetFiles(PictureStr, ImgType[i]); //PictureStr 为图片所在路径
- for (int ji = 0; ji < s2.Length; ji++)
- {
- GameObject ga = Instantiate(Picture_Button, Picture_Grid.transform) as GameObject; //创建button实例,父节点为网格组件
-
- //文件流读取图片
- FileStream fileStream = new FileStream(s2[ji], FileMode.Open, FileAccess.Read);
-
- byte[] bytes = new byte[fileStream.Length];
-
- fileStream.Read(bytes, 0, (int)fileStream.Length);
-
-
- fileStream.Close();
-
- fileStream.Dispose();
- fileStream = null;
- //设置图片大小
- int width = 400;
- int height = 400;
- //创建texture2D
- Texture2D texture = new Texture2D(width, height);
- //加载图片流
- texture.LoadImage(bytes);
- //创建sprite并赋值
- Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
- ga.GetComponent<Image>().sprite = sprite;
- }
-
- }
- }
网格按钮自动排版:
UI层级
Picture_ScrollView 对象添加添加scrollRect组件
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class AutoSortGrid : MonoBehaviour
- {
- private RectTransform[] GradChildRectTrans;
- private float targetWidth, targetHeight, gridWidth, gridHeight, cellSizeX, cellSizeY, spacingX, spacingY;
- int gridChildCount = 0;
-
- public void UpdateAutoSort()
- {
-
- gridWidth = GetComponent<RectTransform>().rect.width;
- gridHeight = GetComponent<RectTransform>().rect.height;
- cellSizeX = GetComponent<GridLayoutGroup>().cellSize.x;
- cellSizeY = GetComponent<GridLayoutGroup>().cellSize.y;
- spacingX = GetComponent<GridLayoutGroup>().spacing.x;
- spacingY = GetComponent<GridLayoutGroup>().spacing.y;
- if (transform.childCount > 0)
- {
- gridChildCount = transform.childCount;
-
- int x = (int)(gridWidth / (spacingX + cellSizeX));
- int yCount = gridChildCount / x;
- float yHeight = (spacingY + cellSizeY) * yCount;
-
- if (yHeight > gridHeight)
- {
- transform.GetComponent<RectTransform>().sizeDelta = new Vector2(gridWidth, yHeight + 500f);
- }
-
- }
- }
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。