第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Unity3d使用列表保持玩家在比賽中的位置

Unity3d使用列表保持玩家在比賽中的位置

我正在創(chuàng)建一個(gè)簡(jiǎn)單的賽車游戲,我想保持我的玩家的位置并顯示它。我認(rèn)為創(chuàng)建一個(gè)列表并將所有敵人和玩家放入其中然后對(duì)其進(jìn)行排序會(huì)很有用,但我被困在那里。一開(kāi)始我只使用了一個(gè)敵人和我的玩家。這是我到目前為止所做的代碼。任何想法如何繼續(xù)?public List<GameObject> Balls;    public Text scoreText;    int score;    [SerializeField]    GameObject myPlayer;    [SerializeField]    GameObject enemy1;public List<GameObject> Balls;void myList()    {        Balls.Add(myPlayer);        Balls.Add(enemy1);        Balls.Sort(CompareDistance);    }    private int CompareDistance(GameObject a, GameObject b)    {        float distance_a = a.GetComponent<GameObject>().transform.position.z;        float distance_b = b.GetComponent<GameObject>().transform.position.z;        if (distance_a >= distance_b)        {            return 1;        }        else        {            return -1;        }    }
查看完整描述

2 回答

?
尚方寶劍之說(shuō)

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊

您的代碼非常接近,但存在一些簡(jiǎn)單的錯(cuò)誤。你的排序函數(shù)的結(jié)果應(yīng)該是相反的,GameObject 不是一個(gè)組件,是一個(gè)組件容器,你已經(jīng)有了引用。在這兩個(gè)更改之后,您的方法似乎運(yùn)行良好。我還添加了一個(gè)等于條件,以避免交換不需要交換的元素。


 private int CompareDistance(GameObject a, GameObject b)

    {

        float distance_a = a.transform.position.z;

        float distance_b = b.transform.position.z;

        if (distance_a==distance_b) return 0;

        if (distance_a >= distance_b)

            return -1;  else  return 1;

    }

還要盡量避免過(guò)于頻繁地創(chuàng)建列表,創(chuàng)建一次,然后才進(jìn)行排序,創(chuàng)建和填充列表可能相對(duì)昂貴(排序也是如此)


查看完整回答
反對(duì) 回復(fù) 2021-07-17
  • 2 回答
  • 0 關(guān)注
  • 175 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)