首页 > 解决方案 > 我怎样才能让玩家在向左滑动时彼此靠近,而在向右滑动时他们会移动到两侧?

问题描述

所以我想让我的球员一直保持前进的速度,当我向左滑动或使用 A 键时,他们之间的绳索会彼此靠近,而当我向右滑动时,他们会彼此远离到相同的位置他们以前是。

视频游戏链接:https ://streamable.com/45ahyc

我现在的运动代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{


    public float movementSpeed = 10f;



    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        float hMovement = Input.GetAxis("Horizontal") * movementSpeed;
        float vMovement = Input.GetAxis("Vertical") * movementSpeed / 2;

        transform.Translate(new Vector3(hMovement, 0, vMovement) * Time.deltaTime);
    }
}

标签: c#unity3d

解决方案


您可以为此使用标志标志。例如,您可以将ìsRight布尔公共属性添加到您的PlayerController并且当您读取水平移动时,您可以乘以 -1 或 1。

float hMovement = Input.GetAxis("Horizontal") * movementSpeed * (isRight)?1:-1;

因此,当您向左滑动时,您的右侧角色可以向左移动,而左侧角色可以向右移动。因为,他们会关闭中心。

此外,您可以使用角色的 x 轴符号来完成这项工作。

float hMovement = Input.GetAxis("Horizontal") * movementSpeed * Mathf.Sign(transform.position.x);

如果您的角色在右侧,它的 x 位置可能是 +,而左侧字符的位置符号是 -。您可以获得与上述代码相同的结果。

注意在我的第二个建议中,我假设您使用了 2 个玩家角色并且屏幕中心为 0。


推荐阅读