我正在制作一个系统,您可以在其中按下某个键,它将在您的鼠标位置放置一个对象。每次按下“1”键时,它都应该将其放在鼠标位置,但由于某种原因,每一帧都Input.GetKeyDown("Alpha1");被注册为 true,因此无论我移动鼠标,无论我按什么,它都会将块向下放置。最近经常发生这种情况,我似乎找不到任何答案。
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;
}
}
拉莫斯之舞
相关分类