c# - 在 y 轴上移动播放器
问题描述
我现在正在为 Android 开发 Pong-Clone,并观看了有关它的教程。它与键盘完美配合,但我如何在手机上获得类似的控制。我当前的代码如下所示:
private void Start()
{
ball = GameObject.FindGameObjectWithTag("Ball").GetComponent<Ball>();
col = GetComponent<BoxCollider2D>();
if (side == Side.Left)
forwardDirection = Vector2.right;
else if (side == Side.Right)
forwardDirection = Vector2.left;
}
private void Update()
{
if (!overridePosition)
MovePaddle();
}
private void MovePaddle()
{
float targetYPosition = GetNewYPosition();
ClampPosition(ref targetYPosition);
transform.position = new Vector3(transform.position.x, targetYPosition, transform.position.z);
}
private void ClampPosition(ref float yPosition)
{
float minY = Camera.main.ScreenToWorldPoint(new Vector3(0, 0)).y;
float maxY = Camera.main.ScreenToWorldPoint(new Vector3(0, Screen.height)).y;
yPosition = Mathf.Clamp(yPosition, minY, maxY);
}
private float GetNewYPosition()
{
float result = transform.position.y;
if (isAI)
{
if (BallIncoming())
{
if (firstIncoming)
{
firstIncoming = false;
randomYOffset = GetRandomOffset();
}
result = Mathf.MoveTowards(transform.position.y, ball.transform.position.y + randomYOffset, moveSpeed * Time.deltaTime);
}
else
{
firstIncoming = true;
}
}
else
{
float movement = Input.GetAxisRaw("Vertical " + side.ToString()) * moveSpeed * Time.deltaTime;
result = transform.position.y + movement;
}
return result;
}
我希望玩家在 y 轴上移动,但我不知道如何使用触摸控制来做到这一点(我是游戏新手)。我真的很感激任何帮助,所以我可以继续编程:)
解决方案
如果要按住使对象移动,可以制作两个按钮,一个用于+y,另一个用于-y。然后用于Input.GetTouch
注册玩家输入。
推荐阅读
- python - 如何将列表中的相同整数加在一起?
- javascript - JavaScript:元素定位
- html - 如何让这个简单的登陆页面弹性框在所有相关浏览器中都能正常工作?
- javascript - 而 http 查询直到 parentID 值为 '0'
- reactjs - 如何从“react-countdown-now”库中调用启动和暂停函数?
- python - 如何使用 Python 抓取 PDF;仅限特定内容
- ios - 如果我已经继承了 UIViewController,如何继承 SwipeTableViewController?另外,如何向用户显示键盘?(迅速)
- kubernetes - 间歇性吊舱通信问题
- reactjs - 反应路由器将道具传递给子组件
- c# - 我如何确定用户在hangman c#游戏中猜错了