首页 > 其他分享 >unity中,连续路径上的点排序

unity中,连续路径上的点排序

时间:2024-02-01 10:22:55浏览次数:27  
标签:路径 nearestIdx unity output var input 排序

 1         /// <summary>
 2         /// 路径点排序
 3         /// </summary>
 4         /// <param name="start">路径起点</param>
 5         /// <param name="input">路径上所有的点</param>
 6         /// <param name="output">空的列表,保存排序后的路径</param>
 7         public static void SortToPath(Vector3 start, List<Vector3> input, List<Vector3> output)
 8         {
 9             var currentNearestDistance = float.PositiveInfinity;
10             var nearestIdx = -1;
11             for (int i = 0; i < input.Count; i++)
12             {
13                 var dis = Vector3.Distance(start, input[i]);
14                 if (dis < currentNearestDistance)
15                 {
16                     currentNearestDistance = dis;
17                     nearestIdx = i;
18                 }
19             }
20             if (nearestIdx >= 0)
21             {
22                 output.Add(input[nearestIdx]);
23                 input.RemoveAt(nearestIdx);
24                 SortToPath(output[output.Count - 1], input, output);
25             }
26         }

 

标签:路径,nearestIdx,unity,output,var,input,排序
From: https://www.cnblogs.com/zerozabuu/p/18000682

相关文章

  • Unity3D 帧同步的原理与常用的处理方式详解
    Unity3D是一款广泛应用于游戏开发的跨平台游戏引擎,其帧同步技术是实现多人游戏联机的关键之一。本文将详细介绍Unity3D帧同步的原理以及常用的处理方式,并给出相关的技术详解和代码实现。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏......
  • Unity shader实现水波的技术原理
    Unityshader是Unity引擎中非常重要的一个部分,它可以用来实现各种各样的特效效果,其中包括水波效果。本文将详细讲解Unityshader实现水波的技术原理,并给出相关的Shader代码实现。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏......
  • 最多能完成排序的块
    769.MaxChunksToMakeSorted(Medium)数组arr是[0,1,...,arr.length-1]的一种排列,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。我们最多能将数组分成多少块?示例1:输入:arr=[4,3,2,1,0]输......
  • 洛谷 P4580 [BJOI2014] 路径
    传送门分析可以考虑dp。先朴素地定义\(dp[i][j]\)表示当前在结点\(i\),已经走过了\(j\)个结点(含当前)的方案数。发现没法处理括号匹配,于是加一维\(k\)表示当前还剩\(k\)个前括号没有匹配。又发现没法处理前导\(0\)。于是考虑再加一维表示当前的最后一位是什么状态。发......
  • 蒻苟的第一篇学习笔记(快速排序)
    快速排序是一个非常经典也非常常用的排序算法。在平均状况下,排序n个项目需要Ο(nlogn)次比较,在最坏状况下则需要Ο(n2)次比较,但这种状况其实并不常见。快速排序是分而治之思想在排序算法上的典型应用。算法步骤:1.从数列中挑出一个元素,称为"基准"。2。设置两个"哨兵",利用......
  • Unity引擎2D游戏开发,滑铲功能实现总结
    滑铲到悬崖边下落时无法取消动画由于是使用的协程方式实现,所以当滑铲到悬崖边的时候,不能使用yieldbreak,因为该指令会直接退出当前的协程方法,无法执行到isSlide=false指令privateIEnumeratorTriggerSlide(Vector3target){do{yieldreturnnull;......
  • 0131取Data路径下的文件
      f'{Path(file).resolve().parent.parent}{os.path.sep}data{os.path.sep}{name}' 这句话是Python代码,它使用了几个模块和方法来构造一个文件系统路径。下面我们逐个分解这行代码:Path(__file__):这里使用了Path类,它来自Python的pathlib模块,使得文件系统路径操作更加易于处......
  • Unity引擎2D游戏开发,滑墙及蹬墙跳的实现总结
    一、滑墙动画的实现执行动画的逻辑//在墙壁上onWall=(touchLeftWall||touchRightWall)&&!isGround;基本逻辑:紧贴墙壁并且不在地面上的时候执行滑墙动画但是实际上,紧贴墙壁原地跳起也会执行滑墙动画所以,需要额外添加一个条件。跳起离开地面,并施加与面朝X轴方向的力......
  • gulp : 无法将“gulp”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名
    https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=gulp%20%3A%20%E6%97%A0%E6%B3%95%E5%B0%86%E2%80%9Cgulp%E2%80%9D%E9%A1%B9%E8%AF%86%E5%88%AB%E4%B8%BA%20cmdlet%E3%80%81%E5%87%BD%E6%95%B0%E3%80%81%E8%84%9A%E6%9C%AC%E6%96......
  • 深入浅出堆排序: 高效算法背后的原理与性能
    ......