Как удалить объект в unity
Перейти к содержимому

Как удалить объект в unity

  • автор:

Как удалить объект при касании другого объекта в юнити 3д?

android

  • Android
  • +2 ещё

Как сделать прозрачный фон «приложения»?

  • 1 подписчик
  • 4 часа назад
  • 31 просмотр

unity

  • Unity

Не запускаются проекты в Unity?

  • 1 подписчик
  • 27 февр.
  • 32 просмотра

c#

  • C#
  • +1 ещё

Какой метод надо использовать в Unity, что бы при нахождении в Trigger происходило событие?

  • 1 подписчик
  • 27 февр.
  • 38 просмотров

c#

  • C#
  • +1 ещё

Как пофиксить ошибку сериализации в XML?

  • 1 подписчик
  • 25 февр.
  • 64 просмотра

c#

  • C#
  • +1 ещё

Как правильно написать скрипт для Collider и Trigger в Unity, в данной ситуации?

  • 1 подписчик
  • 25 февр.
  • 27 просмотров

c#

  • C#
  • +1 ещё

Как запускать и выключать анимацию cinemachine unity?

  • 1 подписчик
  • 25 февр.
  • 18 просмотров

unity

  • Unity

Как сделать чтобы шейдер в unity запускался после 5 секунд после старта игры?

  • нет подписчиков
  • 25 февр.
  • 31 просмотр

c#

  • C#
  • +1 ещё

Что добавить в код, чтобы музыка воспроизводилась согласно требованиям?

  • 1 подписчик
  • 24 февр.
  • 49 просмотров

c#

  • C#
  • +1 ещё

Как в Unity сделать синхронизацию музыки между сценами и регулировку все музыки через другую сцену?

  • 1 подписчик
  • 23 февр.
  • 29 просмотров

c#

  • C#
  • +3 ещё

Как создать текстуру и поместить ее на объект в unity2d?

  • 1 подписчик
  • 23 февр.
  • 36 просмотров

от 60 000 до 100 000 ₽

от 180 000 ₽

01 мар. 2024, в 23:28

500 руб./за проект

01 мар. 2024, в 23:14

35000 руб./за проект

01 мар. 2024, в 23:00

5000 руб./за проект

Минуточку внимания

Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями

  • Какой лучший способ передать объект с приватными полями?
    • 5 подписчиков
    • 1 ответ
    • 3 подписчика
    • 0 ответов
    • 2 подписчика
    • 3 ответа
    • 3 подписчика
    • 1 ответ
    • 2 подписчика
    • 1 ответ
    • 2 подписчика
    • 1 ответ
    • 2 подписчика
    • 3 ответа
    • 2 подписчика
    • 1 ответ
    • 2 подписчика
    • 1 ответ
    • 2 подписчика
    • 1 ответ

    Как удалить объект при нажатии на него пальцем?

    Пишу приложение на Unity под Android. Столкнулся с проблемой реализации функции удаления prefab-оф, которые я уже добавил на плоскость.

    Вот функция где я создаю этот объект, в моем случае prefab модельки.

    void ShowMarkerAndSetObject() < Listhits = new List(); ARRaycastManagerScript.Raycast(new Vector2(Screen.width / 2, Screen.height / 2), hits, TrackableType.Planes); // show marker if (hits.Count > 0) < PlaneMarkerPrefab.transform.position = hits[0].pose.position; PlaneMarkerPrefab.SetActive(true); >// set object if (Input.touchCount > 0 && Input.touches[0].phase == TouchPhase.Began) < Instantiate(ObjectToSpawn, hits[0].pose.position, ObjectToSpawn.transform.rotation); ChooseObject = false; PlaneMarkerPrefab.SetActive(false); >>

    а вот начатая функция по удалению

    void DeleteObject() < if (Input.touchCount >0) < Touch touch = Input.GetTouch(0); TouchPosition = touch.position; if (touch.phase == TouchPhase.Began) < // луч, в котором фиксируем объекты в месте где мы коснулись пальцем Ray ray = ARCamera.ScreenPointToRay(touch.position); RaycastHit hitObject; // условие, что мы пересекли объекты if (Physics.Raycast(ray, out hitObject)) < Destroy(hitObject.transform.ObjectToSpawn); >> > >

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

    • Вопрос задан более двух лет назад
    • 551 просмотр

    1 комментарий

    Простой 1 комментарий

    Удаление объекта при завершении уровней

    Author24 — интернет-сервис помощи студентам

    Здравствуйте, я начинающий программист и пока только учусь. Я хочу сделать так, что бы при завершение уровня на определённый объект зачислялось очко и при сборе трёх очков, объект (в моём случае замок) удалялся со сцены. Но из-за перехода на другую сцену, скрипты перестают работать и никуда ничего не зачисляется. Я уже пытался через DontDestroyOnLoad, но объект начинает дублироваться и очки всё так-же не зачисляются.

    1) (этот код я вешаю на объект который должен удалиться)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
    using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class OpenDeadlock : MonoBehaviour { public int Score; public int PointsRequired = 3; public void OpenLock(int OpenD) { Score += OpenD; if (Score >= PointsRequired) { Score = PointsRequired; } } void Awake() { DontDestroyOnLoad(transform.gameObject); } }

    2) (этот на объект который должен зачислять очки)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
    using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class AdditionalScore : MonoBehaviour { public int AddScore = 1; public string collisionTag; private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == collisionTag) { OpenDeadlock Score = collision.gameObject.GetComponentOpenDeadlock>(); Score.OpenLock(AddScore); Destroy(gameObject); } } }

    Кто нибудь может мне деревянному объяснить что я делаю не так?

    Создание и уничтожение игровых объектов (GameObjects)

    Некоторые игры имеют постоянное количество объектов на сцене, однако обычно персонажи, сокровища и другие объекты создаются и удаляются во время игры. В Unity, игровой объект (GameObject) может быть создан используя функцию Instantiate, которая делает копию существующего объекта:-

    public GameObject enemy; void Start() < for (int i = 0; i < 5; i++) < Instantiate(enemy); >> 

    Заметьте, что объект с которого берется копия не обязан присутствовать на сцене. Гораздо чаще используется префаб, который был перетащен на открытую переменную (public variable) из файлов проекта в панели Project. Также, копируя игровой объект (GameObject), вы копируете все компоненты оригинального объекта.

    Также есть функция Destroy, которая уничтожит объект после того, как загрузка кадра будет завершена или опционально после короткой паузы:-

    void OnCollisionEnter(Collision otherObj) < if (otherObj.gameObject.tag == "Missile") < Destroy(gameObject,.5f); >> 

    Заметьте что функция Destroy может уничтожать отдельные компоненты без влияния на сам объект. Частая ошибка — писать что-то вроде этого:-

     Destroy(this); 

    …что на самом деле уничтожит только вызывающий скриптовый компонент, вместо того, чтобы уничтожить игровой объект, к которому присоединен этот скрипт.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *