Nano Hash - криптовалюты, майнинг, программирование

Unity android Игнорировать столкновение между перетаскиванием игровых объектов

Я хочу иметь возможность перетаскивать gameObject в другую (2D-игру), чтобы перетаскивать объекты, я использую этот скрипт:

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

public class Dragger : MonoBehaviour
{
    float tempZAxis;
    public SpriteRenderer selection;
    void Start()
    {
    }
    void Update()
    {
        Touch[] touch = Input.touches;
        for (int i = 0; i < touch.Length; i++)
        {
            Vector2 ray = Camera.main.ScreenToWorldPoint(Input.GetTouch(i).position);
            RaycastHit2D hit = Physics2D.Raycast(ray, Vector2.zero, 100f, (1 << 8 | 1 << 9 | 1 << 10 | 1 << 11));
            switch (touch[i].phase)
            {
                case TouchPhase.Began:
                    if (hit)
                    {
                        selection = hit.transform.gameObject.GetComponent<SpriteRenderer>();
                        if (selection != null)
                        {
                            tempZAxis = selection.transform.position.z;
                        }
                    }
                    break;
                case TouchPhase.Moved:
                    Vector3 tempVec = Camera.main.ScreenToWorldPoint(touch[i].position);
                    tempVec.z = tempZAxis;
                    if (selection != null)
                    {
                        selection.transform.position = tempVec;
                    }
                    break;
                case TouchPhase.Ended:
                    selection = null;
                    break;
            }
        }
    }
}

Проблема в том, что мне пришлось прикрепить BoxCollider2D к каждому gameObject, чтобы использовать RaycastHit2D, и теперь, когда я перетаскиваю объект1 на объект2, он толкает объект2, когда они сталкиваются. У меня есть 4 слоя до gameObjects, я пытался вызвать Physics.IgnoreLayerCollision(9, 10); в скрипте, прикрепленном к основной камере (запускается при запуске), но это не помогло.

18.06.2016

Ответы:


1

Вы можете отключить взаимодействие между слоями в меню Edit -> Project Settings -> Physics.

Другим вариантом может быть (если вы не хотите, чтобы ваши объекты подвергались физическому взаимодействию), чтобы проверить все ограничения (заморозить положение и заморозить вращение) во всех измерениях (x, y и z) в твердом теле, прикрепленном к объектам. .

18.06.2016
  • Спасибо, отключил в меню "Физика". 18.06.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..