Задача: сделать так, чтобы собранный ресурс летел в соответствующую иконку на Canvas'e. Камера двигается, соответственно координаты Canvas'а в мире постоянно меняются.
Решение:
1) Как только ресурс собран, сразу же засовываем его в
Сanvas. (вернее, создаем на холсте Image с тем же спрайтом, что был в SpriteRenderer'е. Тут работает просто задать ему тот же transform.position, что был у ресурса. Image будет прямым ребенком Canvas'а2) Двигать
Image будем через localPosition внутри Canvas
3) Определить целевые координаты. Вполне вероятно, что иконка, куда должен лететь ресурс, не будет прямым ребенком Canvas'а. Но если бы это было бы так, нам было бы достаточно просто взять его localPosition. Собственно, это значение мы и найдём, используя вот такой трюк:var targetLocalPosition = сanvas.transform.InverseTransformPoint(target.transform.position)4) Любым удобным способом, который мы знаем, двигаем наш
Image в targetLocalPosition