【发布时间】:2021-10-03 22:50:56
【问题描述】:
我正在制作一款手机游戏,我在统一使用新输入系统正确获取触摸位置时遇到了一些问题。这就是我正在尝试做的事情。
我想获得一个人握住屏幕的时间的点击位置。否则值将为零
我正在获取屏幕坐标中的值,并且这些值是正确的。但是当我使用 camera.main.screenToWorldPoint() 将值转换为世界坐标时,我得到的值只有 -16 左右。我现在不知道是什么问题,我的屏幕点值是正确的,但世界点值只有 -16,有人可以帮我解决这个问题
这是我的代码:----
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerInputSystem : MonoBehaviour
{
Controlls controlls;
Controlls.TouchActions TouchControlls;
Controlls.KeyBoardActions KeyBoardControlls;
public FloatRefernce HorizontalAxis; // it is just my custom class
private void Awake()
{
controlls = new Controlls();
TouchControlls = controlls.Touch;
KeyBoardControlls = controlls.KeyBoard;
TouchControlls.TouchPress.performed += ctx => HorizontalAxis.Value =
Camera.main.ScreenToWorldPoint(new Vector3(TouchControlls.TouchPosition.ReadValue<float>() , 0f)).x;
TouchControlls.TouchPress.canceled += ctx => HorizontalAxis.Value = 0;
}
private void OnEnable()
{
controlls.Enable();
TouchControlls.Enable();
KeyBoardControlls.Enable();
}
private void OnDisable()
{
controlls.Disable();
TouchControlls.Disable();
KeyBoardControlls.Disable();
}
}
【问题讨论】:
标签: c# unity3d touch game-engine