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

和城乡建设厅网站自建网站的优缺点

和城乡建设厅网站,自建网站的优缺点,旅游网站建设市场分析,网络营销的作用在 Unity UI 开发中,有时需要让图标沿着一条道路轨迹移动,比如地图上的车辆行驶动画、导航路径指示等。本文介绍如何基于 UI 图片中的道路线生成曲线,并使用 Slider 控制图标沿轨迹运动,适用于 UI 导航、路径跟随动画等场景。 1. …

在 Unity UI 开发中,有时需要让图标沿着一条道路轨迹移动,比如地图上的车辆行驶动画导航路径指示等。本文介绍如何基于 UI 图片中的道路线生成曲线,并使用 Slider 控制图标沿轨迹运动,适用于 UI 导航、路径跟随动画等场景


1. 功能介绍

  • 基于 UI 图片自动解析道路轨迹,生成 AnimationCurve
  • 使用 Slider 控制图标沿道路移动
  • 适用于 UI 地图、导航路径动画等

最终效果👇

2. 代码实现

2.1 解析道路轨迹,生成曲线路径

思路:

  • 读取 UI 图片 (Image) 的 Sprite,获取 Texture2D
  • 遍历像素点,找到道路轨迹的像素
  • 转换为 UI 坐标,存入 AnimationCurve,用于后续运动计算
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
using Sirenix.OdinInspector;public class PathGenerator : MonoBehaviour
{public Image roadImage; // 道路线 UI 图片public AnimationCurve pathCurve = new AnimationCurve(); // 道路路径曲线[Button("Generate Path")]public void GeneratePath(){if (roadImage == null || roadImage.sprite == null){Debug.LogError("Road Image or Sprite is not assigned.");return;}Sprite sprite = roadImage.sprite;Texture2D texture = sprite.texture;Rect rect = sprite.rect;List<Vector2> points = new List<Vector2>();// 计算缩放比例RectTransform rectTransform = roadImage.rectTransform;float scaleX = rectTransform.rect.width / rect.width;float scaleY = rectTransform.rect.height / rect.height;// 提取道路轨迹上的点for (int x = 0; x < rect.width; x++){for (int y = 0; y < rect.height; y++){Color pixel = texture.GetPixel((int)rect.x + x, (int)rect.y + y);if (pixel.a > 0.1f) // 透明度判断,找到道路轨迹{Vector2 point = new Vector2((x - rect.width / 2) * scaleX, // UI 坐标转换(y - rect.height / 2) * scaleY);points.Add(point);break;}}}// 生成曲线路径pathCurve = new AnimationCurve();foreach (Vector2 p in points){pathCurve.AddKey(p.x, p.y);}}
}

生成一条与路径相同的Curve,效果如下👇

2.2 让图标沿道路轨迹移动

思路:

  • 监听 Slider 拖动事件,获取 value
  • Slider 值映射到曲线的 X 轴坐标
  • 计算对应 Y 轴坐标,更新图标位置
using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;public class FollowPath : MonoBehaviour
{public PathGenerator pathGenerator; // 路径生成器public Slider slider; // 控制 CurrentX 的 Sliderasync void Start(){if (slider != null){slider.onValueChanged.AddListener(OnSliderValueChanged);}await UniTask.WaitForFixedUpdate();OnSliderValueChanged(slider.value);}void OnSliderValueChanged(float value){if (pathGenerator == null || pathGenerator.pathCurve.length == 0 || slider == null) return;// 获取路径的X范围float minX = pathGenerator.pathCurve.keys[0].time;float maxX = pathGenerator.pathCurve.keys[pathGenerator.pathCurve.length - 1].time;// 映射 Slider 的值到 CurrentXfloat currentX = Mathf.Lerp(minX, maxX, value);// 获取对应的Y坐标float y = pathGenerator.pathCurve.Evaluate(currentX);// 更新 UI 位置RectTransform rectTransform = GetComponent<RectTransform>();rectTransform.anchoredPosition = new Vector2(0, y + 4);}
}

3. 运行效果

  1. 点击 Generate Path,从 UI 图片解析道路轨迹
  2. 拖动 Slider,图标沿道路轨迹平滑移动
  3. 可用于 UI 导航、路径动画等场景

4. 适用场景

UI 地图导航(如 GPS 轨迹动画)
车辆行驶路径(如小车沿地图行驶)
手绘路径动画(如绘制道路后小车自动行驶)

如果有更好的优化方案,欢迎讨论! 🚀


最后贴上道路线的图片:


文章转载自:

http://ZtndM78B.qxpcq.cn
http://tBqmgqmu.qxpcq.cn
http://tSee3EZ8.qxpcq.cn
http://nJROPGFs.qxpcq.cn
http://XmMNxqxp.qxpcq.cn
http://ehtME5Xm.qxpcq.cn
http://ucLVapx6.qxpcq.cn
http://GjUQ0dtb.qxpcq.cn
http://hwV82asy.qxpcq.cn
http://fU4vQ4wR.qxpcq.cn
http://Rl95nSKp.qxpcq.cn
http://pvg81jum.qxpcq.cn
http://JRLr09kM.qxpcq.cn
http://msK4Pors.qxpcq.cn
http://Yi4VGaiq.qxpcq.cn
http://ZyflqNse.qxpcq.cn
http://33U0ySVL.qxpcq.cn
http://IoKNguSL.qxpcq.cn
http://JqsvqYcG.qxpcq.cn
http://aAUZ06lJ.qxpcq.cn
http://1jvJWRIu.qxpcq.cn
http://vRMkuNUN.qxpcq.cn
http://tWU4AfHI.qxpcq.cn
http://b6nPfAUo.qxpcq.cn
http://e8d6vxCQ.qxpcq.cn
http://spFbaTPs.qxpcq.cn
http://NGQN53to.qxpcq.cn
http://hXFbg4qK.qxpcq.cn
http://Cc63Rxvy.qxpcq.cn
http://B95DOjtT.qxpcq.cn
http://www.dtcms.com/wzjs/693235.html

相关文章:

  • 企业站模板明细教如何做帐哪个网站好
  • 网站跳转怎么做360怎么从网上找客户
  • 爱采购下载app深圳seo培训
  • 电子商务网站开发书例子wordpress柒比贰
  • 网站模板 pc 移动版网站建设课设总结报告
  • 烟台网站建设的公司贵州网站建设价格
  • 高端网站建设北京wordpress 音频播放器
  • 扮家家室内设计网qq排名优化网站
  • 免费网站备合肥网站优化服务网
  • 做网站建设公司赚钱如何引用404做网站
  • 网站建设 数据库连接百度推广二级代理商
  • 网站建设技术可行性做旅游攻略的网站代码
  • 做网站什么系统简单产品市场推广途径
  • 做企业形象网站网站建设运维情况
  • 旅游商城网站建设宝山苏州网站建设
  • 手机网站免费生成app网络营销策略案例分析
  • 旅行社做网站齐家网装修怎么样
  • 做搞机网站做动画合成的视频网站
  • 一个网站的建设需要什么手续推广运营方案
  • 网站开发php有哪些企业信息管理系统有哪些
  • 京东客网站怎么做php做网站难么
  • 从0建设一个网站文字转图片生成器在线
  • 手机商城网站案例动漫网站实现功能
  • 赛车pk10计划网站建设南通网站的优化
  • 长沙哪里可以做网站东莞企业自助建站系统
  • 官方网站怎么注册哪个网站做h5比较好
  • 营销型网站设计建设网站seo方案建议
  • 男女在床上做暖暖插孔视频网站设计师招聘网站有哪些
  • 广州专业网站开发在家做网站
  • 平阳高端网站建设安徽品质网站建设创新