gpt4 book ai didi

c# - Input.GetkeyDown 在没有按下按钮的情况下返回 true

转载 作者:太空宇宙 更新时间:2023-11-03 18:52:08 26 4
gpt4 key购买 nike

我正在制作一个系统,您可以在其中按下某个键,它会在您的鼠标位置放置一个对象。每次按下键“1”时,它都应该将其放在鼠标位置,但由于某种原因,每一帧 Input.GetKeyDown("Alpha1"); 都被注册为 true,所以无论我移动到哪里鼠标,无论我按什么,它都会放下方 block 。最近我经常遇到这种情况,但我似乎找不到任何答案。

using UnityEngine;

public class CubePlacer : MonoBehaviour
{
private Grid grid;
public KeyCode place;

private void Awake()
{
grid = FindObjectOfType<Grid>();
}

private void Update()
{
if (Input.GetKeyDown(place)) ;
{
RaycastHit hitInfo;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

if (Physics.Raycast(ray, out hitInfo))
{
PlaceCubeNear(hitInfo.point);
}
}
}

private void PlaceCubeNear(Vector3 clickPoint)
{
var finalPosition = grid.GetNearestPointOnGrid(clickPoint);
GameObject.CreatePrimitive(PrimitiveType.Cube).transform.position = finalPosition;

//GameObject.CreatePrimitive(PrimitiveType.Sphere).transform.position = nearPoint;
}
}

最佳答案

if (Input.GetKeyDown(place)) ; // <--- remove this semi colon
{
RaycastHit hitInfo;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

if (Physics.Raycast(ray, out hitInfo))
{
PlaceCubeNear(hitInfo.point);
}
}

您需要删除 If 语句后的分号。每次调用 Update() 方法时,它都会终止该行并导致之后的 block 执行。

关于c# - Input.GetkeyDown 在没有按下按钮的情况下返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55164631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com