Перемещение изображения пользовательского интерфейса в зависимости от движения игрока в соотношении 1: 1 на сцене - PullRequest
0 голосов
/ 20 июня 2019

У меня 2D игра в единстве. Я хочу, чтобы изображение пользовательского интерфейса (то есть в объекте canvas) перемещалось по объекту игрока / врага.

С моим сценарием изображение пользовательского интерфейса движется, но корабль медленнее, чем трансформация игрового объекта, не то же самое, что изображение пользовательского интерфейса.

Вот мой код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ClampUIonPlayer : MonoBehaviour
{
    public Image img;

    Camera cam;

    public Canvas canvas;



    private void Start()
    {
        cam = GameObject.Find("FullScaleRadarCamera").GetComponent<Camera>();

    }

    // Update is called once per frame
    void Update()
    {

        Vector3 imgVec = cam.WorldToScreenPoint(this.transform.position);
        //img.transform.position = imgVec;

        Vector2 movePos;

        //Convert the screenpoint to ui rectangle local point
        RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, imgVec, canvas.worldCamera, out movePos);
        img.transform.position = movePos;
        Debug.Log(movePos);

    }



}

Корабль игрока содержит этот скрипт. Пользовательский интерфейс изображения находится внутри холста. Изображение пользовательского интерфейса отображается только на втором самере (я делаю все это, чтобы отображать изображения игроков в моей игре на мини-карте. Но мне нужно использовать изображения пользовательского интерфейса, а не только вторую камеру, потому что я необходимо иметь эффект наведения на игроков на миникарте. Кажется, что эффект наведения не может работать во второй камере (с raycast, для стандартных игровых объектов).

Вот моя сцена: https://photos.app.goo.gl/UoLtTu4mKXffq7UBA

Вот видео моей проблемы. Выбранный корабль - зеленый ящик, остальные корабли, более быстрый, - красный ящик. Я контролирую их обоих одновременно. Иконки интерфейса не перемещаются 1: 1 с этими кораблями. https://photos.app.goo.gl/hXu8aV2UFfcZzBoC6

Спасибо за любую помощь.

Я пытался решить эту проблему Переместить пользовательский интерфейс RectTransform в мировое положение Я скопировал скрипт как есть, но изображения пользовательского интерфейса не будут перемещаться отдельно, они почему-то перемещаются как единое целое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...