-1

嗨,我的问题是在 Unity 中,我是 c# 的初学者,我的游戏对象没有触发在游戏平面上设置的对撞机,以便重置它的位置。

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

public class BasketballSpawnScript : MonoBehaviour
{ 
    public Transform respawnPoint;

    void OnTriggerEnter(Collider other)
    {    
        if (other.gameObject.CompareTag("Basketball"))
        {    
            other.gameObject.transform.position = respawnPoint.position;
        }    
    }
}

该脚本附加到平面上,并且游戏对象被标记为篮球,当它进入地板的对撞机时,它应该将其位置转换为原始位置。

我看不出有什么问题,我可以得到一些帮助吗?

PS 当其他游戏对象也通过对撞机时,我会收到此错误。

NullReferenceException:对象引用未设置为对象的实例

4

2 回答 2

0

如果对生成点使用变换,请记住在检查器菜单中设置它的值。

public Transform respawnPoint;

void OnTriggerEnter(Collider other)
{    
    if (other.CompareTag("Basketball"))
        other.transform.position = respawnPoint.position;
}

别的

public Vector3 respawnPoint = Vector3.zero;

void OnTriggerEnter(Collider other)
{    
    if (other.CompareTag("Basketball"))
        other.transform.position = respawnPoint;
}
于 2019-06-14T09:42:02.240 回答
0
private void OnTriggerEnter(Collider other){

    if(other.gameobject.tag=="Basketball"){

       other.gameobject.transform.position = respawnPoint;
    }
}

我希望它对你有帮助。

于 2019-07-11T17:24:11.397 回答