толкать персонажа в направлении последовательно в Unity - PullRequest
0 голосов
/ 25 октября 2018

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

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GeyserPush : MonoBehaviour {

    public GameObject Player;
    public float Speed;



    private void OnTriggerEnter(Collider other)
    {
        if(other.gameObject == Player)
        {
            //other.transform.Translate((Vector3.up * Time.deltaTime), Space.World);
            Player.transform.Translate(Vector3.up * Time.deltaTime * Speed);
            print("Pushing");
        }
    }


    private void OnTriggerExit(Collider other)
    {
        if (other.gameObject == Player)
        {

        }
    }
}

Код неполный, поскольку у меня пока нет полного решения.У персонажа тоже есть твердое тело.

1 Ответ

0 голосов
/ 25 октября 2018

Исходя из таблицы внизу этой ссылки , если и у частиц, и у игрока есть Rigidbody, то может быть лучше использовать OnCollisionEnter().

Youможет добавить силу на Rigidbody игрока за столкновение в направлении, в котором ваши частицы движутся так:

private void OnCollisionEnter(Collider other)
{
    if(other.gameObject == Player)
    {
        //other.transform.Translate((Vector3.up * Time.deltaTime), Space.World);
        Player.GetComponent<Rigidbody>().AddForce(targetDirection * Speed);
        print("Pushing");
    }
}
...