2 qq 32140579 qq_32140579 于 2016.09.15 17:01 提问

C#/unity 怎么给Vector2排序?

就是一系列的Vector2 我存在了一个List中,想让他们按照Y升序,但是Y相同的元素,按照X的升序排序,怎么写出来,小白求帮忙!!给点提示也好。。。很记恨关急

2个回答

aiyan1111111
aiyan1111111   2016.09.21 17:13

图片说明
public Vector2[] Vector2Sort(Vector2[] listVector2)
{
try
{
if (listVector2 != null && listVector2.Length != 0)
{
bool flag;
Vector2 temp;
for (int i = 0; i < listVector2.Length - 1; i++)
{
flag = false;
for (int j = 0; j < listVector2.Length - i - 1; j++)
{
if (listVector2[j].y > listVector2[j + 1].y)
{
temp = listVector2[j];
listVector2[j] = listVector2[j + 1];
listVector2[j + 1] = temp;
flag = true;
}
else if (listVector2[j].y == listVector2[j + 1].y)
{
if (listVector2[j].x > listVector2[j + 1].x)
{
temp = listVector2[j];
listVector2[j] = listVector2[j + 1];
listVector2[j + 1] = temp;
flag = true;
}
}
}
if (!flag)
{
break;
}
}

            for (int i = 0; i < listVector2.Length; i++)
            {
                Debug.Log(listVector2[i]);
            }
            return listVector2;
        }
        else
        {
            return null;
        }
    }
    catch (Exception ex)
    {
        return null;
    }
}

aiyan1111111
aiyan1111111   2016.09.21 17:22

具体代码 可在我博客中查看

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
{Unity} Vector2输出log的坑
比如有一个Vector2 vec_test; Debug.Log(vec_test); 输出内容为 (0.7,0.8), 实际内容为x=0.66,y=0.81, 单独log出x和y都是对的,但整体Log出来的就是四舍五入的。 并且下断点在debugger里面看,vec_test的总体内容是(0.7,0.8),但展开后里面的值是x=0.66,y=0.81 坑!
Unity之EditorGUILayout-Vector2、Vector3、Vector4-八
使用Unity编辑器类在 Inspector面板编辑 Vector2、Vector3、Vector4 在Editor文件夹下创建脚本InspectorTest using UnityEngine; using System.Collections; using UnityEditor; [CustomEditor(typeof(Test))] public cl
UNITY 5.2 Vector2 结构
Static变量:都是只读属性,一些特殊向量的缩写 public static Vector2 up { get; } 说明;Vector2(0, 1) 的缩写 public static Vector2 down { get; } 说明;Vector2(0, -1) 的缩写 public static Vector2 left { get; } 说明;Vector2(-1,
Unity3d之Vector3 学习与应用
今天的目标是Vector3 和部分 Transform。先说Vector3。 首先是Vector3的中英文API Struct Representation of 3D vectors and points. 表示3D的向量和点。 This structure is used throughout Unity to pass 3D positions and directions
【Unity】入门学习笔记180525——API(19)——Vector2类
Vector2类Vector2类是Unity中用来存储二维向量或二维点坐标的结构体类型介绍Vector2类的实例方法、静态方法以及运算符A、Vector2类实例方法1、Normalize:单位化Vector2实例public void Normalize();此方法用来单位化向量,改变了原始向量,无返回值实例属性normalized与此方法功能相同,但使用属性normalized来单位化向量时,不...
Unity3D Mesh小课堂(二)为三角形添加纹理
通过修改UV坐标,为自定义Mesh添加纹理。
滑动返回坐标Vector2方向判别
原理如下图所示 代码判断为 Vector2 m_Dir; if (m_Dir.y &amp;lt; m_Dir.x &amp;amp;&amp;amp; m_Dir.y &amp;gt; -m_Dir.x) { //向右 Debug.Log(&quot;向右&quot;); } e...
Unity中冒泡排序
本篇文章主要记录,如何在Unity中进行冒泡排序。 using UnityEngine; using System.Collections; using System;public class Solt : MonoBehaviour { public Vector2[] vector2_array = new Vector2[10]; public int[] Num_Array =
C++ 复合类型(三)--数组vector、array
#include #include #include #include using namespace std; char *getName(char *); //结构体 struct nameStr { int a = 0; }; //枚举 enum Name { Name_a = 1, Name_b = 2, Name_c = 3, }; //模板
unity3dC#的List升序降序排序
List.Sort有三种结果 1,-1,0分别是大,小,相等 升序降序比较,默认List的排序是升序排序 如果要降序排序,也很简单,只需要在前面加一个负号 Listint> tmp = new Listint>(){5,1,22,11,4}; // 升序 tmp.Sort((x, y) => x.CompareTo(y)); // 降序 tmp.Sort((x, y) => -x.