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

淄博周村学校网站建设定制网站建设前期准备工作总结

淄博周村学校网站建设定制,网站建设前期准备工作总结,wordpress 详情页,大型电子商务网站建设成本前言 在游戏开发和导航系统中#xff0c;waypoint 是指路径中的一个特定位置或点。它通常用于定义一个物体或角色在场景中移动的目标位置或路径的一部分。通过一系列的 waypoints#xff0c;可以指定复杂的移动路径和行为。以下是一些 waypoint 的具体用途…前言 在游戏开发和导航系统中waypoint 是指路径中的一个特定位置或点。它通常用于定义一个物体或角色在场景中移动的目标位置或路径的一部分。通过一系列的 waypoints可以指定复杂的移动路径和行为。以下是一些 waypoint 的具体用途 导航和路径规划 Waypoints 用于定义角色或物体从一个位置移动到另一个位置的路径。例如在游戏中敌人可能会沿着一系列 waypoints 巡逻。 动画和过场 Waypoints 可用于定义相机或对象在场景中移动的路径。例如在过场动画中摄像机可能会沿着预定义的路径移动以展示场景的不同部分。 人工智能AI行为 AI 角色可以使用 waypoints 来确定移动路径和行为模式。例如AI 角色可以沿着一系列 waypoints 移动以模拟巡逻或探索行为。 动态事件触发 Waypoints 可以用作触发点当角色或物体到达某个 waypoint 时触发特定事件或行为。例如玩家到达某个 waypoint 时可能会触发一段对话或开始一个任务。 Unity 简单载具路线 Waypoint 导航 实现 假设我们有一辆载具需要通过给定的数个路径点waypoint来进行移动和转向。 简单粗暴的一种方法是使用Animation动画系统来为载具制作做动画但是这个方法的致命缺点是非常不灵活一旦需要改动路径点和模型几乎就得重新做动画。 好在DOTween (HOTween v2) | 动画 工具 | Unity Asset Store 插件的出现让脚本解决变得异常的简单快捷这个插件能够完美解决各种各样的过场动画和事件调用 DOTween (HOTween v2) (demigiant.com)https://dotween.demigiant.com/index.php 这里需要先事先安装一下DOTween没什么难度免费 在场景中增加你的路径点做一个父物体然后为子物体增加多个路径点这里每个路径点建议使用带有方向的模型或者图片这样便于查看为你的载具添加文末的脚本并挂在载具上如果你不想挂在载具上那简单改一下代码的变量为你的期望物体上就行。在inspector中绑定好你需要的路径点集合的父物体wayPointsParent变量这里我在父物体上额外加了一个LineRender组件用于后续连线效果运行程序车子就会动起来了调节每一个变量让车子移动的更自然 每个变量都有它的意义比如你可以规定整个路程的总时间、转一次弯需要多少时间转弯的起始距离阈值以及每到一个waypoint的事件调用等等并可以更具每个人的需要自行修改和拓展 using System; using UnityEngine; using DG.Tweening; using UnityEngine.Events;/// summary /// Author: Lizhenghe.Chen https://bunnychen.top/about /// /summary public class CarMover : MonoBehaviour {public LineRenderer wayPointsParent;[Header(Total move time in seconds)] public int totalMoveTime 300;[Header(Rotation duration in seconds)]public float rotationDuration 2;[Header(Distance threshold to start rotating)]public float rotationStartDistance 1;[Header(Show line renderer)] public bool showLineRenderer true;// Duration for each segment[SerializeField] private int moveDuration 5;// Array of transforms for the car to move towards[SerializeField] private Transform[] waypoints;[SerializeField] private Transform currentWaypoint;[SerializeField] private int currentWaypointIndex;public UnityEvent onWaypointReached;private MaterialPropertyBlock _propBlock;private static readonly int BaseColor Shader.PropertyToID(_BaseColor);private static readonly int EmissionColor Shader.PropertyToID(_EmissionColor);private void OnValidate(){// Get the waypoints from the parent object, do not include the parent object itselfif (wayPointsParent null) return;waypoints new Transform[wayPointsParent.transform.childCount];for (var i 0; i waypoints.Length; i){waypoints[i] wayPointsParent.transform.GetChild(i);}//foreach waypoint, set the current waypoint to look at the next waypointfor (var i 0; i waypoints.Length - 1; i){waypoints[i].LookAt(waypoints[i 1]);}moveDuration totalMoveTime / waypoints.Length;}private void Start(){OnValidate();if (showLineRenderer) SetLineRenderer();SetWaypointsSequence();onWaypointReached.AddListener(SetPreviousWaypointColor);}private void SetWaypointsSequence(){// Create a new Sequence for movementvar moveSequence DOTween.Sequence();// Loop through the waypoints and append DOMove tweens to the moveSequenceforeach (var waypoint in waypoints){moveSequence.AppendCallback(() {currentWaypoint waypoint;currentWaypointIndex Array.IndexOf(waypoints, waypoint);onWaypointReached?.Invoke();});// Move to the waypointmoveSequence.Append(transform.DOMove(waypoint.position, moveDuration).SetEase(Ease.Linear));// Create a rotation tween that starts when the car is within the specified distance to the waypointmoveSequence.AppendCallback(() {// Start rotation when close to the waypointif (Vector3.Distance(transform.position, waypoint.position) rotationStartDistance){// make the rotation same to the waypoints rotationtransform.DORotateQuaternion(waypoint.rotation, rotationDuration).SetEase(Ease.Linear);}});}// Optionally, set some other properties on the sequencemoveSequence.SetLoops(0); // Infinite loop// moveSequence.SetAutoKill(false); // Prevent the sequence from being killed after completion}private void SetLineRenderer(){//set the line renderers position count to the number of waypoints and set the positions to the waypoints positionswayPointsParent.positionCount waypoints.Length;for (var i 0; i waypoints.Length; i){wayPointsParent.SetPosition(i, waypoints[i].position);}}private void SetPreviousWaypointColor(){_propBlock ?? new MaterialPropertyBlock();if (currentWaypointIndex 0) return;// Set the color of the current waypoint to green, and the next waypoint to redwaypoints[currentWaypointIndex - 1].GetComponentMeshRenderer().GetPropertyBlock(_propBlock);_propBlock.SetColor(BaseColor, Color.green);_propBlock.SetColor(EmissionColor, Color.green);waypoints[currentWaypointIndex - 1].GetComponentMeshRenderer().SetPropertyBlock(_propBlock);waypoints[currentWaypointIndex - 1].gameObject.SetActive(false);} }
http://www.w-s-a.com/news/46609/

相关文章:

  • 重庆seo建站网站服务器 安全
  • 咸宁做网站的公司桂林网站建设兼职
  • 教做网站网站开发行业分析
  • 忻州网站建设培训友情链接交换形式有哪些
  • 佛山做外贸网站渠道外贸常用网站
  • 文章收录网站网站及新媒体建设办法
  • 招聘网站排行榜2021找建网站公司
  • 网站建设制作宝塔面板活动宣传推广的形式有哪些
  • 掉关键词网站敏捷软件开发流程
  • 微信小程序格泰网站建设新闻采编与制作专业简历
  • 电子商城建设网站海伦网站建设
  • 南充能够建设网站的公司有专门做设计的一个网站
  • 免费域名申请个人网站阿里巴巴运营的工作内容
  • 怎么建自己的手机网站保定电子商务网站建设
  • 系部网站建设中期检查表创建网站的公司
  • 西宁网站建设优化重庆企业的网站建设
  • 贝壳企业网站管理系统徽与章网站建设宗旨
  • 郑州网站模板动漫设计与制作设计课程
  • 在线制作网站的工具岳阳网站设计改版
  • 网站建设需要汇报哪些内容前端开发的工作内容
  • 无锡阿凡达网站建设美团app开发公司
  • 个性化企业网站制作公司深圳高端网站定制公
  • 专业深圳网站定制开发企业网站开发 流程
  • 网站建设推广的软文php网站平台
  • 如何做代刷网站长外贸网站个性设计
  • 合同网站开发 设计 后期维护如何搭建海外网络
  • 提供网站建设服务优化大师哪个好
  • 军队营房基础建设网站哦咪咖网站建设
  • fifa17做任务网站app下载免费安装
  • 网站开发用哪些技术seo是什么意思为什么要做seo