public InteractionInputHandler(IInteractionInterface inInteractionInterface) : base() { InteractionInterface = inInteractionInterface; ButtonResponses.Add(EInputKey.Interact, OnInteractButton); }
/// <summary> /// 检查是否可以交互 /// </summary> private void RayInspect() { RaycastHit[] raycastHit = Physics.SphereCastAll(interactionPosition + transform.position, radius, transform.forward, radius / 2, layer); if (raycastHit.Length >= 1) { interaction = raycastHit[0].collider.GetComponent <IInteractionInterface>(); if (interaction != null) { if (interaction.InteractionType == InteractionType.collect) { collect = interaction as ICollect; HintMessage.Single.ShowMessageText($"{collect.Name}:采集"); } else if (interaction.InteractionType == InteractionType.bulid) { HintMessage.Single.ShowMessageText("Q:销毁\nE:建造"); bulid = interaction as IBulid; } } else { House house = raycastHit[0].collider.GetComponent <House>(); if (house != null) { if (house.houseMenu.gameObject.activeSelf) { if (Input.GetKeyDown(KeyCode.E)) { house.CloseMenu(); } HintMessage.Single.CloseMessageText(); } else { HintMessage.Single.ShowMessageText("E:打开菜单"); if (Input.GetKeyDown(KeyCode.E)) { house.OpenMenu(); } } } } } else { interaction = null; HintMessage.Single.CloseMessageText(); } }