首页 > 解决方案 > 在 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 轴上移动,但我不知道如何使用触摸控制来做到这一点(我是游戏新手)。我真的很感激任何帮助,所以我可以继续编程:)

标签: c#androidunity3dunity3d-2dtools

解决方案


如果要按住使对象移动,可以制作两个按钮,一个用于+y,另一个用于-y。然后用于Input.GetTouch 注册玩家输入。


推荐阅读