Я работаю над симулятором в Unity3D, и мне нужен объект-клиент, чтобы иметь возможность автоматически находить объект магазина с самой низкой ценой.Unity3D: Автоматическая цель в соответствии с ценой
Я сделал небольшое испытание на этом сам и нашел, что это довольно сложно достичь. Так я надеялся, что кто-то может помочь мне настроить мой код немного дальше в правильном направлении? :)
Вот код, я получил до сих пор:
var cityName : String;
var shopScript : MarketScript;
function FindShopPlace() : GameObject //Make a queueing system
{
var max : float;
var target : GameObject;
var gos : GameObject[];
var goScript : MarketScript;
gos = GameObject.FindGameObjectsWithTag("market");
for (var go : GameObject in gos)
{
goScript = go.GetComponent(MarketScript);
if (goScript.cityName == cityName)
{
if (goScript.resalePrice >= max && goScript.cityName == cityName)
{
max = goScript.resalePrice;
}
if (goScript.resalePrice < max && goScript.cityName == cityName)
{
print ("test");
target = go;
}
}
}
shopScript = target.GetComponent(MarketScript);
return target;
}
В настоящее время с этим кодом, цель никогда не найден и назначен. Я получаю следующее NullReferenceException от линии № 3 от дна:
NullReferenceException: ссылка на объект не указывает на экземпляр объекта ConsumerScript.FindShopPlace() (на активы/_MyAssets/_Scripts/ConsumerScript.js: 268) ConsumerScript.Update () (на активы/_MyAssets/_Scripts/ConsumerScript.js: 96)
Вы потрясающий человек! Трюк об удержании минимального значения делает гораздо больше, и я сработал с вашей помощью в считанные минуты. Я не могу вас поблагодарить! :) –