Склеивание объектов при столкновении, с последующим перемещением за ним

195
22 июля 2021, 16:30

Задача заключается в столкновении и приклеивание с последующим перемещением.
Не могу понять, как это сделать?

К примеру: есть объект который перемещается и допустим, при нажатии на кнопку, он опускается вниз до другого объекта, когда он сталкивается с ним происходит OnTriggerEnter, как мне склеить их друг с другом, чтобы объект 1 поднял за собой объект 2?

Что для этого нужно использовать?

Answer 1

Через Parent target:

//вешать на твоего плеера к которому аттачить. 
//И не забыть проставить тег у всех обьектов которые должны уметь аттачиться
public void OnCollisionEnter (Collision col)
{
    if (col.gameObject.tag == "AttachibleObj")
    {
        col.gameObject.parent = gameObject.transform;
    }
}

через FixedJoint:

//вешать на твоего плеера к которому аттачить. 
//И не забыть проставить тег у всех обьектов которые должны уметь аттачиться
public void OnCollisionEnter (Collision col)
{
    if (col.gameObject.GetComponent(RigidBody)!=null
         && col.gameObject.tag == "AttachibleObj"))
    {
        joint = miningTool.gameObject.AddComponent<FixedJoint>();
        joint.connectedBody = col.rigidbody;
    }
}

через Collider: itTrigger:

private void OnTriggerEnter(Collider col) {
    string tag = collider.tag;
    if (col.gameObject.tag == "AttachibleObj") {
        joint = miningTool.gameObject.AddComponent<FixedJoint>();
        joint.connectedBody = col.GetComponent<Rigidbody>();
    }
}
READ ALSO
Безопасное кодирование байт в строку типа base64 или base58

Безопасное кодирование байт в строку типа base64 или base58

Какие в c# есть варианты кодирования последовательности байт в строковую форму, кроме base64?

334
Оружие смотрит ниже курсора - unity 2d

Оружие смотрит ниже курсора - unity 2d

я разрабатываю игру с видом сверхуРешил сделать пушку, которая будет смотреть прямо на курсор

311
как реализовать консоль в c#

как реализовать консоль в c#

Захотелось сделать что-то типо консоли CMD, вообщем консольку с командами простую(Вводишь например time - выдает время

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

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

У меня есть таблица t, которая содержит два столбца: name VARCHAR(20) NOT NULL, surname VARCHAR(20) NOT NULL

252