C# Input.GetkeyDown在不按下按钮的情况下返回true
我正在制作一个系统,你可以按下某个键,它会在你的鼠标位置放置一个物体。每次按“1”键时,它都应该将其放在鼠标位置,但由于某些原因,每帧都会显示C# Input.GetkeyDown在不按下按钮的情况下返回true,c#,unity3d,input,C#,Unity3d,Input,我正在制作一个系统,你可以按下某个键,它会在你的鼠标位置放置一个物体。每次按“1”键时,它都应该将其放在鼠标位置,但由于某些原因,每帧都会显示Input.GetKeyDown(“Alpha1”)注册为true,因此无论我在何处移动鼠标,它都会将块向下放置,无论我按什么。这件事最近经常发生在我身上,我似乎找不到任何答案 使用UnityEngine; 公共类立方体置换器:单行为 { 私有电网; 公钥密码; 私人空间 { grid=FindObjectOfType(); } 私有void更新() {
Input.GetKeyDown(“Alpha1”)
注册为true,因此无论我在何处移动鼠标,它都会将块向下放置,无论我按什么。这件事最近经常发生在我身上,我似乎找不到任何答案
使用UnityEngine;
公共类立方体置换器:单行为
{
私有电网;
公钥密码;
私人空间
{
grid=FindObjectOfType();
}
私有void更新()
{
if(Input.GetKeyDown(place));
{
RaycastHitInfo;
Ray-Ray=Camera.main.screenpointoray(输入.鼠标位置);
if(物理.光线投射(光线,输出hitInfo))
{
PlaceCubeNear(hitInfo.point);
}
}
}
私有void PlaceCubeNear(矢量3点击点)
{
var finalPosition=grid.GetNearestPointOnGrid(点击点);
GameObject.CreatePrimitive(PrimitiveType.Cube).transform.position=finalPosition;
//GameObject.CreatePrimitive(PrimitiveType.Sphere).transform.position=nearPoint;
}
}
if(Input.GetKeyDown(place));//<代码>如果(Input.GetKeyDown(place));//你们在哪里分配位置?试着用KeyCode.Alpha1代替place,告诉我们它是否有效,因为它应该有效。你在哪里分配位置?尝试使用KeyCode.Alpha1而不是place,告诉我们它是否有效,因为它应该有效。
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);
}
}