@Pashtet221

Как перемещать gameObject по тегу?

Нужно сделать движение объекта за игроком. Нашел видос где это реализовано через публичное поле(просто перетащить объект игрока в инспекторе). Все бы ничего, только у меня это немного по-другому реализовано через префабы(они меняются). Добавил всем префабам тег и через скрипт отслеживаю их позицию. Вот скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Minimap : MonoBehaviour
{
    private Transform player;

    private void Start()
    {
        player = GameObject.FindWithTag("Player").transform;
    }


    private void LateUpdate()
    {
        Vector3 newPosition = player.position;
        newPosition.y = transform.position.y;
        transform.position = newPosition;

        transform.rotation = Quaternion.Euler(90f, player.eulerAngles.y, 0f);
    }
}
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ответы на вопрос 1
PragmaGames
@PragmaGames
Увлекаюсь Unity.
Я бы избавился от тега. Даже если префабы разные, но сущность одна, нужно создать абстракцию, и искать по ней

public abstract class Player : MonoBehaviour
        {
            
        }
        
        public class PlayerA : Player
        {
            
        }
        
        public class PlayerB : Player
        {
            
        }


Но даже такой подход плох. Лучше создать отдельный класс который будет знать и о карте и о игроке, и давать карте игрока когда тот существует, и говорить карте не отображать игрока когда его убили.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы