Unity 3D 游戏中的物品保留

问题描述

我使用此代码在我的 3d 恐怖游戏中选择项目并发现错误

要放下物品,角色必须先握住物品(物品出现在“ItemSpace”)。有时,当我想放下物品时,它不会一直出现在“ItemSpace”位置(有时在游戏地图下方,这使得物品无法访问并低于游戏地图)。

我的方法有什么问题吗?或者有没有更好的方法解决这个问题?

public Transform theDest;
public Transform itemWorld;
public Transform inventory;

private void Start()
{
    theDest = GameObject.Find("ItemSpace").transform;
    itemWorld = GameObject.Find("ItemWorld").transform;
    inventory = GameObject.Find("Inventory").transform;
}
public virtual void OnDrop()
{
    gameObject.transform.parent = itemWorld;
    if (gameObject.activeInHierarchy == false) gameObject.SetActive(true);
    gameObject.GetComponent<Rigidbody>().constraints = RigidbodyConstraints.None;
}

public virtual void OnHold()
{
    gameObject.SetActive(true);
    gameObject.transform.position = theDest.position;
    gameObject.transform.parent = theDest;
}

public virtual void OnChange()
{
    gameObject.SetActive(false);
    gameObject.transform.position = inventory.position;
    gameObject.transform.parent = inventory;
}

public virtual void OnPickup()
{
    gameObject.SetActive(false);
    gameObject.transform.position = inventory.position;
    gameObject.transform.parent = inventory;
    gameObject.GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeAll;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)