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

商城首页网站torrentkitty磁力猫引擎

商城首页网站,torrentkitty磁力猫引擎,网站开发实习计划模板,动态网站与建设实训心得效果 直接将脚本挂载在Text Mesh Pro上,但是需要滚动的文本必须在Scroll View中,否侧会定位错误,还需要给Scroll View中看需求添加垂直或者水平布局的组件 代码 using System.Collections; using System.Collections.Generic; using UnityE…

效果

请添加图片描述
直接将脚本挂载在Text Mesh Pro上,但是需要滚动的文本必须在Scroll View中,否侧会定位错误,还需要给Scroll View中看需求添加垂直或者水平布局的组件

代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;using TMPro;
using UnityEngine.EventSystems;public class TextScroll : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler {// TextMeshPro的文本框private TextMeshProUGUI text;private string saveStr; // 保存文本内容,可以保存,但是没有必要,需要实现动态文本private Vector3 savePostion; // 保存文本位置private Vector2 savesizeDelta; // 保存尺寸private float saveMoveWeight;private RectTransform rect; // 文本的方形转换器[Tooltip("开启自动权重")]public bool AutoMoveWeight = true;// 如果开启自动权重那么对该变量修改不在起作用[Tooltip("溢出文本移动的权重,会根据权重的值,来对溢出内容的多少进行加速")]public float moveWeight = 3;private void OnEnable() {text = GetComponent<TextMeshProUGUI>();rect = text.gameObject.GetComponent<RectTransform>();Init();}/// <summary>/// 初始化文本内容/// </summary>public void Init() {saveStr = text.text;savePostion = rect.position;savesizeDelta = rect.sizeDelta;saveMoveWeight = moveWeight;}private Coroutine coroutine; // 接收协程/// <summary>/// 鼠标进入/// </summary>/// <param name="eventData">传入事件数据,鼠标位置等</param>public void OnPointerEnter(PointerEventData eventData) {// Debug.Log("鼠标进入开始文本滚动");// saveStr = text.text;// 是否存在截断float fontsLenght = CalculateTextWidth(text);if (fontsLenght < rect.sizeDelta.x ) return;// 处理上一次退出后未完成恢复完成就再次进入if (coroutine != null) {StopCoroutine(coroutine);Reset();}// 是否启动自动更新if (AutoMoveWeight) {moveWeight = (fontsLenght - rect.sizeDelta.x) / 100;}// 计算所需时间float sumTime = (fontsLenght - rect.sizeDelta.x) / text.fontSize / moveWeight;rect.sizeDelta = new Vector2(fontsLenght + 100, rect.sizeDelta.y);coroutine = StartCoroutine(IETextScroll(sumTime, false));}/// <summary>/// 鼠标移出/// </summary>/// <param name="eventData"></param>public void OnPointerExit(PointerEventData eventData) {// Debug.Log("text begine reset");// 过滤if (text == null || (coroutine == null && CalculateTextWidth(text) < rect.sizeDelta.x) || totalDistance == 0) return;if (coroutine != null) { // 文本正在向左滚动StopCoroutine(coroutine);} coroutine = StartCoroutine(IETextScroll(totalTime / 3, true));// Reset();}/// <summary>/// 计算文本内容宽度/// </summary>/// <param name="text"></param>/// <returns></returns>private float CalculateTextWidth(TextMeshProUGUI text) {float width = text.preferredWidth;return width;}private float totalDistance = 0;private float totalTime = 0;/// <summary>/// 文本滚动的协程/// </summary>/// <param name="time">协程运行时间</param>/// <param name="isReset">是否是恢复时启动的协程</param>/// <returns></returns>private IEnumerator IETextScroll(float time, bool isReset) {// float moveSpeed = 0;float perDistance = 0;if (!isReset) {while (time > 0) {// Time.deltaTime 是一个不确定的量,需要每帧更新。perDistance = moveWeight * text.fontSize * Time.deltaTime;rect.position = new Vector3(rect.position.x - perDistance, rect.position.y);time -= Time.deltaTime;totalDistance += perDistance;totalTime += Time.deltaTime;yield return null;}} else { // 恢复//moveSpeed = totalDistance / time;//while (time > 0) {//    perDistance = moveSpeed * Time.deltaTime;//    rect.position = new Vector3(rect.position.x + perDistance, rect.position.y);//    time -= Time.deltaTime;//    yield return null;//}Reset();}// Debug.Log("移动权重: " + moveWeight + " 每次距离: " + totalDistance + " 花费时间: " + totalTime);yield return null;}/// <summary>/// 恢复/// </summary>private void Reset() {if (text == null) return;// text.text = saveStr;rect.position = savePostion;rect.sizeDelta = savesizeDelta;moveWeight = saveMoveWeight; // 采用自动权重时会再次自动计算权重totalDistance = 0;totalTime = 0;}
}
http://www.khdw.cn/news/63140.html

相关文章:

  • 做网站注册有哪些灰色行业关键词优化
  • 个人旅游网站模版友情链接教程
  • 工作网站开发制作seo免费培训
  • 东莞网站建设熊掌号长春网站建设定制
  • 网站建设方案的所属行业是百度推广客服电话24小时
  • 蚌埠做网站多少钱win10必做的优化
  • 商会小程序开发一个多少钱啊宁波seo搜索优化费用
  • oa网站建设网络营销推广工作内容
  • 高端型网站宁波网络推广软件
  • 网站正在建设中 蓝色营销手段和技巧
  • 谁做的怀来吧网站购买域名的网站
  • 大型集团网站建设竞价推广外包
  • 最好科技广州网站建设什么是淘宝seo
  • 网站开发大概需要多久如何进行网络营销
  • wordpress更换帝国兰州网络优化seo
  • 网站制作网站优化seo数据优化教程
  • 电商网站开发简历seo网站推广下载
  • 甘肃住房和城乡建设厅网站最新军事新闻
  • vps 网站打不开社群营销
  • 福州建站模板国外搜索引擎网站
  • 开发一个网站一般需要多少钱如何找到网络公关公司
  • 网站建设考核指标网络营销推广公司名称
  • wordpress 简书徐州seo排名公司
  • discuz 做论坛与网站最近新闻有哪些
  • 推销别人做网站有什么作用网站的推广优化
  • cnzz 网站跳出率查询网上哪里接app推广单
  • 大悟网站建设怎么做网站优化排名
  • app软件开发学什么专业北京网站优化专家
  • 容桂网站设计制作站优云网络公司
  • 开发网站流程网络营销10大平台