更改其他脚本的变量并销毁GameObject Unity C#

时间:2019-09-24 19:49:32

标签: c# unity3d

在我的平台游戏中,我刚刚添加了一些检查点,因此,如果玩家死亡,不一定会在曲目的开头产生。 ghfdghdggfhfg     使用UnityEngine;

public class CheckPoints : MonoBehaviour
{
    [SerializeField] private Grounded game;

    void Update()
    {
        transform.Rotate(0, 0, 5);
    }

    private void OnTriggerEnter() {
        game.updatedCheckPointPosition = transform.position;
        Destroy(this);
    }
}

我尝试将Grounded脚本的public float变量设置为CheckPoint本身的当前位置,但未成功完成。

非常感谢您提供任何有关此操作的信息或帮助。

1 个答案:

答案 0 :(得分:0)

来自Destroy

  

对象obj现在将被销毁,或者如果从现在起t秒被指定时间,销毁对象。

     
      
  • 如果objComponent ,它将从GameObject中删除该组件并将其销毁。
    [但是请保留其余的GameObject!]

  •   
  • 如果objGameObject ,它将破坏GameObject,其所有组成部分以及GameObject的所有转换子对象。

  •   

this是指相应的组件实例。您想要的是

Destroy(gameObject);

OnTriggerEnter需要类型为Collider的参数才能正常工作

private void OnTriggerEnter(Collider other) 
{
    game.updatedCheckPointPosition = transform.position;
    Destroy(this);
}

但是请注意,这种围绕玩家的方式必须是触发,而检查点非触发 >!实际上,我宁愿以相反的方式进行操作,并使chackpoint成为触发器,而是让玩家对象检查OnTriggerEnter