Как подбросить предмет, когда я держусь за тот же предмет - PullRequest
0 голосов
/ 08 мая 2020

Это не в FPS. Это похоже на игру с видом сверху. Нужно ли мне добавлять рейкаст для броска?

Я думал, что код для этого находится в void toss (), но это не сработало. Пожалуйста, помогите

public Transform theDest;
public float throwforce = 300f;


void Update()
{
    pickingoff();
    toss();
}


private void OnTriggerStay(Collider other)
{
    if(other.gameObject.tag == "Player")
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            GetComponent<Rigidbody>().useGravity = false;
            this.transform.position = theDest.transform.position;
            this.transform.parent = GameObject.Find("Destination").transform;
            Debug.Log("Pick up");
        }
    }
}


void toss()
{
    if(Input.GetMouseButtonDown(0))
    {
        GetComponent<Rigidbody>().AddForce(transform.forward * throwforce);
        GetComponent<Rigidbody>().useGravity = true;
        this.transform.parent = null;

    }

}

void pickingoff()
{
    if(Input.GetMouseButtonDown(1))
    {
        this.transform.parent = null;
        GetComponent<Rigidbody>().useGravity = true;
    }
}

1 Ответ

0 голосов
/ 08 мая 2020

Чтобы заставить что-то двигаться в единстве, вам нужно добавить к нему направление и силу, и, похоже, вы уже это делаете, я боюсь, что вы, кстати, получаете ссылку на неправильный объект, попробуйте присвоить объекту тег вы хотите бросить и использовать что-то вроде

var thingToThrow = GameObject.FindWithTag("ThingToThrow");
thingToThrow.mass = 10f;
thingToThrow.useGravity = true;
thingToThrow.AddForce(transform.forward * throwforce);

Другое главное преимущество заключается в том, что вы можете проверить, что вы добавляете массу и силу к

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