我有一个名为 TouchDetector.cs 的 C# 脚本,它看起来完全像这样:
using UnityEngine;
using System.Collections;
public class TouchDetector : MonoBehaviour
{
public delegate void deTouchEvent (enTouchType touchType);
public static event deTouchEvent evTouchEvent;
public enum enTouchType
{
SwipeLeft,
SwipeRight,
SwipeDown,
SwipeUp,
}
void Start ()
{
}
void Update ()
{
if (evTouchEvent == null)
return;
if (Input.GetKeyDown(KeyCode.UpArrow )) evTouchEvent(enTouchType.SwipeUp );
if (Input.GetKeyDown(KeyCode.DownArrow )) evTouchEvent(enTouchType.SwipeDown );
if (Input.GetKeyDown(KeyCode.LeftArrow )) evTouchEvent(enTouchType.SwipeLeft );
if (Input.GetKeyDown(KeyCode.RightArrow)) evTouchEvent(enTouchType.SwipeRight);
if (Input.touchCount > 0)
{
foreach (Touch t in Input.touches)
{
Vector3 swipe = t.deltaPosition * t.deltaTime;
if (swipe.y > 0.5f) evTouchEvent(enTouchType.SwipeUp );
if (swipe.y < -0.5f) evTouchEvent(enTouchType.SwipeDown );
if (swipe.x > 0.5f) evTouchEvent(enTouchType.SwipeRight);
if (swipe.x < -0.5f) evTouchEvent(enTouchType.SwipeLeft );
}
}
}
}
我正在尝试将以下键码调用替换为上面相应的滑动调用。我对编程有点陌生,并试图在这里自学。我已经设法让滑动脚本正常工作,但是如果有意义的话,我已经用尽了所有方法来将它作为我的控制器。感谢您给我的任何帮助或建议。我试过以下。
if(SwipeLeft)
{
//Do something here
}
然而,这对我不起作用。我似乎无法在我的其他控制脚本中引用控制类型。这是我试图替换的 Control.cs 脚本中的脚本:
if (Input.GetKeyDown(KeyCode.LeftArrow) && m_playerJump <= -1.0f && m_playerSlide <=0.0f)
{
if (m_playerDirection == enCellDir.North) m_playerNextDirection = enCellDir.West;
if (m_playerDirection == enCellDir.East ) m_playerNextDirection = enCellDir.North;
if (m_playerDirection == enCellDir.South) m_playerNextDirection = enCellDir.East;
if (m_playerDirection == enCellDir.West ) m_playerNextDirection = enCellDir.South;
}
而不是 Input.GetKeyDown,我希望它说 SwipeLeft 或者我需要对其进行编码。请帮忙。我变得非常沮丧。我查看了枚举,但不太明白我在读什么或如何引用它们。我假设,从我读过的内容来看,枚举就像 java 中的 int。但如果是这样的话,我怎么称呼那些?