为了账号安全,请及时绑定邮箱和手机立即绑定

除非我在 Visual Studio 中处于调试模式,否则脚本不会启用

除非我在 Visual Studio 中处于调试模式,否则脚本不会启用

C#
白衣染霜花 2022-01-16 15:34:49
当我尝试在调试时启用交互脚本时,只要我设置了一个断点,它就可以完美运行。但是当我在不调试的情况下运行游戏时,大约有 50% 的时间无法启用脚本。Interact 是 NPC 和 MonsterAttack 脚本的基类。我只有 NPC 和 MonsterAttack 脚本附加到物理游戏对象。void Update (){    if (Input.GetMouseButton(0) && !UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject())    {        if (interactedObject != null && interactedObject.GetComponent<Interact>() != null)        {            interactedObject.GetComponent<Interact>().enabled = false;        }        Interact.rotate = false;        rayHit = GetInteraction();   }}//Get interaction with clicked objectprivate RaycastHit GetInteraction(){    //Get the mouse clicked position    Ray interactionRay = Camera.main.ScreenPointToRay(Input.mousePosition);    RaycastHit interactionInfo;    if (Physics.Raycast(interactionRay, out interactionInfo, Mathf.Infinity))    {        Debug.DrawRay(interactionRay.origin, interactionInfo.point, Color.red);        interactedObject = interactionInfo.collider.gameObject;        if (interactedObject.tag != "NPC" && interactedObject.tag != "Monster")        {            //Move somewhere on the terrain            playerAgent.stoppingDistance = 0f;            playerAgent.SetDestination(interactionInfo.point);        }        else        {            //IT FAILS HERE            interactedObject.GetComponent<Interact>().enabled = true; //<--------            //Interact with an Object, NPC, Item, Monster            interactedObject.GetComponent<Interact>().MovetoInteraction(playerAgent);        }    }    return interactionInfo;}
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

这里的问题实际上是因为我的光线投射。出于某种原因,它正在拾取物体及其下方的地形。所以当我点击一个对象时,它有时会使用地形而不是我点击的对象。因此未选择启用我的脚本的路径,这就是未启用脚本的原因。


查看完整回答
反对 回复 2022-01-16
  • 1 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信