Unity游戏道具排序方法

一、IComparable接口

继承这个接口必须实现CompareTo方法,这个方法官方文档给出的提示是返回值为Int类型-1,0,1
-1是this小于,0是this等于,1是this大于。

二、游戏道具排序思路

  1. 自己实现的逻辑(菜鸟思路),今天也是有这个需求然后想了一下,如果自己写的话可以考虑使用依赖倒置原则进行排序,也就是说可以声明一个父类,然后子类继承父类。弄一个父类数组引用,指向子类对象通过FindObjectsOfType这个方法查找,通过Sort方法进行排序,排序成功之后移动数组对应索引。

三、使用IComparable接口实现

有了一个大概思路之后想自己写来着但是写起来感觉挺麻烦的,就在百度上搜索了一下然后看见了这个接口感觉挺好的。

  1. 还是依赖倒置原则,声明手雷类,不同种类手雷继承手雷类
  2. 可以让手雷类实现IComparable,因为手雷是父类如果父类实现了这个接口相当于子类也实现了,那么子类也就拥有了CompareTo方法。
    Unity游戏道具排序方法
  3. 通过FindObjectsOfType<手雷>(),拿到不同类型的手雷对象。通过Array.Sort方法进行排序就行了。
    Unity游戏道具排序方法
    Unity游戏道具排序方法