当前位置: 首页 > news >正文

米各庄有做网站的吗苏州做门户网站的公司

米各庄有做网站的吗,苏州做门户网站的公司,把微信小程序做网站,西安网站建设 分类信息效果预览#xff1a; 此处利用Excel来读取数据来制作年份选择器#xff0c;具体步骤如下。 如果只是制作年份选择器可以参考我这篇文章#xff1a;构建简单实用的年份选择器#xff08;简单原理示范#xff09; 目录 效果预览#xff1a; 一、 Excel准备与存放 1.1 …效果预览 此处利用Excel来读取数据来制作年份选择器具体步骤如下。 如果只是制作年份选择器可以参考我这篇文章构建简单实用的年份选择器简单原理示范 目录 效果预览 一、 Excel准备与存放 1.1 Excel准备 1.2 存放Excel 1.3 读取Excel准备 二、场景准备  三、编写脚本  四、总结  一、 Excel准备与存放 1.1 Excel准备 打开Excel填写内容保存命名为“年份”。示例如下 1.2 存放Excel 将命名为“年份”的excel文件存放在Assets根目录下 1.3 读取Excel准备 读取Excel的几种方式可以参考这篇文章读取Excel的几种方式 此处使用DLL插件读取 将所需插件放入Plugins文件夹中 二、场景准备  场景包括显示年份的背景和字体等内容具体可以参考这篇文章 构建简单实用的年份选择器简单原理示范 三、编写脚本  此处编写了两个脚本分别是ExcelTool和YearAdsorptionExcelTool实现读取Excel内容并记录YearAdsorption来实现生成年份。 using System.Data; // 引入System.Data命名空间用于处理数据表 using System.IO; // 引入System.IO命名空间用于文件操作 using Excel; // 引入Excel命名空间用于读取Excel文件 using UnityEngine; // 引入UnityEngine命名空间用于Unity相关功能public class ExcelTool : MonoBehaviour {public static string[] YearsItemsStr;//用来存放Excel中的年份public static int YearsItemsNum; //用来存放Excel中的年份数量void Start(){ReadExcel(/年份.xlsx); // 调用读取Excel方法并传入文件路径}// 读取Excel文件public void ReadExcel(string xmlName){FileStream stream File.Open(Application.dataPath xmlName, FileMode.Open, FileAccess.Read, FileShare.Read); // 打开Excel文件流//IExcelDataReader excelReader ExcelReaderFactory.CreateBinaryReader(stream);//读取 Excel 1997-2003版本IExcelDataReader excelReader ExcelReaderFactory.CreateOpenXmlReader(stream); // 使用OpenXml读取 Excel 2007及以后的版本DataSet result excelReader.AsDataSet(); // 将Excel数据读取到DataSet中if (stream ! null){stream.Close(); // 关闭文件流}//DataSet可以包含多个数据表索引从0开始所以result.Tables[0]代表第一个表格。int[] counts GetCount(result.Tables[0]); // 获取Excel表格的行数和列数int rows counts[0]; // 行数int columns counts[1]; // 列数YearsItemsNum rows - 1;//记录年份数量Debug.Log(Excel年份数YearsItemsNum YearsItemsNum);YearsItemsStr new string[rows - 1];Debug.Log(row: rows ...col: columns); // 打印行数和列数信息// 遍历Excel表格并打印内容for (int i 1; i rows; i)//将表头年份不包括在内于是i!0{for (int j 0; j columns; j){Debug.Log(result.Tables[0].Rows[i][j].ToString()); // 打印单元格内容YearsItemsStr[i-1] result.Tables[0].Rows[i][j].ToString();}}}// 获取数据表的行数和列数private int[] GetCount(DataTable dt){int i dt.Rows.Count; // 获取行数for (int m 0; m dt.Rows.Count; m){if (string.IsNullOrEmpty(dt.Rows[m][0].ToString())) // 判断第一列是否为空{i m; // 如果为空记录有效行数break;}}int j dt.Columns.Count; // 获取列数for (int n 0; n dt.Columns.Count; n){if (string.IsNullOrEmpty(dt.Rows[0][n].ToString())) // 判断第一行是否为空{j n; // 如果为空记录有效列数break;}}return new int[] { i, j }; // 返回行数和列数的数组} }using UnityEngine; using UnityEngine.UI;public class YearAdsorption : MonoBehaviour {public GameObject yearTextPrefab; // 预设的年份Text对象public ScrollRect scrollRect;public float scaleDifference 0.5f; // 缩放差异public RectTransform contentRectTrans; // Scroll Rect Content的RectTransformprivate RectTransform[] items;//用来存放生成的年份//int yearsCount 40; // 年份总数float viewPortSize;float center;int itemCount;void Start(){// 获取ScrollView的视图大小300;viewPortSize scrollRect.viewport.rect.height;Debug.Log(ScrollView的视图大小: viewPortSize);// 计算ScrollView的中心位置center scrollRect.transform.position.y;// - viewPortSize / 2; Debug.Log(ScrollView的中心位置: center);Debug.Log(YearAdsorption的YearsItemsNum ExcelTool.YearsItemsNum);for (int i 0; i ExcelTool.YearsItemsNum; i)//int i 0; i yearsCount; i{GenerateYearText(ExcelTool.YearsItemsStr[i]);//1950iint.Parse(ExcelTool.YearsItemsStr[i])Debug.Log(YearAdsorption年份 ExcelTool.YearsItemsStr[i]);}//for (int i 0; i yearsCount; i)//int i 0; i yearsCount; i//{// GenerateYearText((1950 i).ToString());//1950iint.Parse(ExcelTool.YearsItemsStr[i])//}// 获取ScrollView中的所有子对象itemCount scrollRect.content.childCount;items new RectTransform[itemCount];for (int i 0; i itemCount; i){items[i] scrollRect.content.GetChild(i).GetComponentRectTransform();//Debug.Log(items[i]: i);}}void Update(){foreach (RectTransform item in items){// 计算每个项目的中心位置float itemCenter item.transform.position.y;// - item.rect.height / 2;//Debug.Log(每个项目的中心位置: itemCenter);// 计算每个项目相对于ScrollView中心的偏移量float distanceFromCenter Mathf.Abs(center - itemCenter);// 根据偏移量计算缩放比例float scale Mathf.Clamp(1 - distanceFromCenter * scaleDifference / viewPortSize, 0.5f, 1f);//Debug.Log(根据偏移量计算缩放比例: scale);// 应用缩放item.localScale new Vector3(scale, scale, 1f);}// 如果用户停止滑动则吸附到最近的年份if (scrollRect.velocity.magnitude 20.0f){SnapToNearestYear();Debug.Log(不移动了);}}private void GenerateYearText(string year){GameObject yearText Instantiate(yearTextPrefab, contentRectTrans);yearText.transform.SetAsFirstSibling();yearText.transform.GetComponentText().text year.ToString();}void SnapToNearestYear(){RectTransform closestItem null;foreach (RectTransform item in items){float distance Mathf.Abs(center - item.position.y);if (distance 35)// 根据需求调整阈值{closestItem item;Debug.Log(装入了一个Item);}}// 将最近的年份吸附到ScrollView的中心if (closestItem ! null){// 计算需要移动的距离float distanceToMove center - closestItem.position.y;// 将ScrollView的内容向上或向下移动使最近的年份对象出现在ScrollView的中心scrollRect.content.anchoredPosition new Vector2(0f, distanceToMove);}} }这里注意两个脚本的执行顺序ExcelTool需要在YearAdsorption之前执行 修改执行顺序可以参考我这篇文章如何设置Unity脚本的执行顺序 将两个脚本挂载Canvas上拖入相应物体并运行 。 四、总结  以上实现步骤具体内容可参考以下文章 如何在 Unity 中创建带有缩放效果的滚动视图简单方法 如何在Unity 中创建带有缩放效果的滚动视图具有吸附效果的实现与优化
http://www.w-s-a.com/news/220149/

相关文章:

  • 电子商务网站开发常用工具牡丹江吧
  • 四川成都网站制作公司wordpress 获取某个分类的文章
  • wordpress 编辑器推动门户网站建设不断优化升级
  • 做游戏网站的前景温江区建设局网站
  • 济南做微网站推广做网站seo优化总结
  • 巢湖网站建设电话长沙大型互联网公司
  • wordpress站群主机海南人
  • 云南网站建设维护商业网站建设教程
  • 云南省滇中引水工程建设管理局网站jsp个人网站设计
  • 网站建设 域名业务 邮箱互联网装饰网站
  • 建设厅技工在哪个网站上查询有了网站模板 还要怎样做
  • 城市联盟网站怎么做百度云网站建设视频教程
  • 织梦cms 官方网站网页视频如何下载到电脑
  • 查询建设公司业绩网站国外外链平台
  • 搭建直播网站需要怎么做做石材网站步骤
  • 移动网站如何做权重wordpress 统计字数 插件
  • 编写网站的软件百度指数教程
  • 网站改版建议策划书做设计什么兼职网站
  • 北京做兼职网站文创产品设计流程
  • 南阳做玉器网站wordpress 图片被缩小
  • 自己做网站卖衣服cms做网站容易不
  • 安徽安搜做的网站怎么样手机网站商城建设答辩问题
  • 分析不同网站的优缺点房产网站定制
  • 深圳工业设计大展2021论坛与网站做优化哪个更好
  • 什么网站做招聘比较好网络营销渠道管理
  • 网站建设选择什么模式淘宝网站可以做轮播吗
  • 山西免费网站制作乌市高新区建设局网站
  • 公司网站建设费用会计处理手机app免费下载
  • 网站的做网站的公司网站有些什么内容
  • 网站新类型wordpress 随机文章