微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity 3D 游戏中的物品保留

如何解决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 举报,一经查实,本站将立刻删除。