如何将位置从一个 object 转换为当前玩家位置?
How to transform position from one object to the current player position?
所以我在我的播放器上安装了这个小粒子系统,所以如果他死了他就会爆炸。但是我不能简单地将粒子系统附加到玩家下面,因为如果我摧毁我的玩家,游戏对象的孩子也会被摧毁。如果他死了动画会运行,但不会在他当前的位置运行,所以对此有什么想法吗?也许在他死后将位置转换为玩家当前的位置?
这是我的代码:
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();
}
}
知道了 :) --> 添加 death_explosion.transform.position = GameObject.Find("player").transform.position;
您可以做的是创建粒子对象的预制件并在脚本中引用它,如下所示:
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);
}
}
所以我在我的播放器上安装了这个小粒子系统,所以如果他死了他就会爆炸。但是我不能简单地将粒子系统附加到玩家下面,因为如果我摧毁我的玩家,游戏对象的孩子也会被摧毁。如果他死了动画会运行,但不会在他当前的位置运行,所以对此有什么想法吗?也许在他死后将位置转换为玩家当前的位置? 这是我的代码:
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();
}
}
知道了 :) --> 添加 death_explosion.transform.position = GameObject.Find("player").transform.position;
您可以做的是创建粒子对象的预制件并在脚本中引用它,如下所示:
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);
}
}