Как преобразовать позицию из одного объекта в текущую позицию игрока? - PullRequest
0 голосов
/ 16 февраля 2020

Итак, я подключил эту маленькую систему частиц к своему игроку, поэтому, если он умрет, он взорвется. Но я не могу просто прикрепить систему частиц под игроком, потому что, если я уничтожу своего игрока, дочерние объекты игрового объекта также будут уничтожены. Анимация запускается, если он умирает, но не на своем текущем месте, так что есть идеи для этого? Может быть, чтобы преобразовать позицию в текущую позицию игрока, когда он умирает? Вот мой код:

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

public class playerdeath : MonoBehaviour
{

    public ParticleSystem death_explosion;

    // Start is called before the first frame update
    void Start()
    {

        death_explosion.Stop();
    }

    // Update is called once per frame
    void Update()
    {

    }

    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "deathcube")
            Destroy(gameObject);
        Debug.Log("collision detected");
        death_explosion.Play();
    }
}

Ответы [ 2 ]

0 голосов
/ 16 февраля 2020

Что вы можете сделать, это создать префаб объекта частицы и ссылаться на него внутри вашего скрипта следующим образом:

public ParticleSystem death_explosion_Prefab;

И вместо того, чтобы прикреплять его к Player в качестве дочернего, создайте его экземпляр при столкновении:

void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "deathcube")
        {
            Debug.Log("collision detected");
            Instantiate(death_explosion_Prefab, gameObject.transform.position, Quaternion.identity);
            Destroy(gameObject);
        }
    }
0 голосов
/ 16 февраля 2020

понял :) -> добавить death_explosion.transform.position = GameObject.Find("player").transform.position;

...