こんにちは、ただいまレースゲームを作っております。
何がわからないのかというと
上にも書いてありますが、ラップ数を考慮して順位付けしたいです。
全体の順位
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class RankingCheck : MonoBehaviour 6{ 7 [SerializeField] private List<RankingPointsGenerator> RankJudgePoint = new List<RankingPointsGenerator>(); 8 [SerializeField] private GameObject player; 9 [SerializeField] private GameObject ai1; 10 [SerializeField] private GameObject ai2; 11 [SerializeField] private GameObject ai3; 12 [SerializeField] private GameObject ai4; 13 [SerializeField] private GameObject ai5; 14 [SerializeField] private GameObject ai6; 15 [SerializeField] private GameObject ai7; 16 [SerializeField] private GameObject ai8; 17 [SerializeField] private GameObject ai9; 18 [SerializeField] private GameObject ai10; 19 [SerializeField] private GameObject ai11; 20 21 public int maxRankingPoint{ get; private set; } 22 23 void Start() 24 { 25 CheckPointGeneration(); 26 } 27 void Update() 28 { 29 RankingSort(); 30 } 31 32 33 34
ここで rankingPoint をプラス
C#
1using System.Collections.Generic; 2using UnityEngine; 3 4public class PlayerRanking : MonoBehaviour 5{ 6 [SerializeField] private RankingCheck rankingCheck; 7 public int rankingPoint; 8 public int lapCount; 9 10 private void Start() 11 { 12 lapCount = 1; 13 } 14 15}
やったこと
順位付けはList の sort で行っているのですが、その中にラムダ式で、rankingPoint と言うオブジェクトが持つどのチェックポイントかの値をみてソートしております。
なので、比べているラップ数が、違うならば 0 を返してソートをしなければよいのじゃないか?と思い lapCount が違うならば 0 を返して、ソートしないようにしております。
ですが、私が操作しているキャラクターは1ラップで AI達は2ラップ目に行ってるのですが、AI が12位と出てしまいます。
https://www.sejuku.net/blog/40456
https://thinca.hatenablog.com/entry/20130330/1364586032
上記のサイトなどいろいろなサイトを見てみたのですが、やり方が間違っているのかもわかりません。
ラップ数を考慮した順位のつけ方がわかる方、どうかご教示お願いします。
回答1件
あなたの回答
tips
プレビュー