Как найти положение объекта из мирового пространства и преобразовать его в пользовательский интерфейс Canvas с режимом рC#

Место общения программистов C#
Anonymous
Как найти положение объекта из мирового пространства и преобразовать его в пользовательский интерфейс Canvas с режимом р

Сообщение Anonymous »

Я работаю над игрой, очень похожей на Марио. Поэтому, когда игрок касается объекта монеты в мировом пространстве, мне нужно анимировать, переместив этот объект монеты на счетчик монет, когда режим рендеринга Canvas — Экранное пространство — наложение, я могу легко получить положение объекта спрайта с помощью кода ниже
Код CoinSprite

Код: Выделить всё

GameObject coinCanvasObject = Instantiate(prefab, canvas.transform);//Instantiate coin inside Canvas view
coinCanvasObject.transform.position = Camera.main.WorldToScreenPoint(coinSpriteObject.transform.position);//getting coin position from World Space and convert to Screen Space and set to coinCanvasobject position
AnimateCoin animate = coinCanvasObject.GetComponent();
animate.animateCoin(coinSpriteObject.transform.position);
coinSpriteObject.SetActive(false);
AnimateCoin

Код: Выделить всё

public class AnimateCoin : MonoBehaviour
{
private float speed = 0f;
private bool isSpawn = false;
private Vector3 screenPos;

public void animateCoin(Vector3 screenPosTemp, Camera cam, Canvas canvas)
{
screenPos = Camera.main.WorldToScreenPoint(screenPosTemp);
isSpawn = true;
}

private void Update()
{
if (isSpawn)
{
speed += 0.025f;
transform.position = Vector3.Lerp(screenPos, targetObject.transform.position, speed);
if (Vector3.Distance(transform.position, targetObject.transform.position)

Вернуться в «C#»