对象未触发对撞机

时间:2019-06-12 23:44:04

标签: c# unity3d virtual-reality steamvr

您好,我的问题是在Unity中,我是c#的初学者,我的gameObject不会触发在游戏平面上设置的对撞机,以便重置它的位置。

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;
        }    
    }
}

此脚本附加到飞机上,游戏对象带有Basketball标签,当它进入地板的对撞机时,应将其位置转换为原始位置。

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

P.S当其他游戏对象也通过对撞机时,也会出现此错误。

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

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

private void OnTriggerEnter(Collider other){

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

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

希望对您有帮助。