c# - 我怎样才能让玩家在向左滑动时彼此靠近,而在向右滑动时他们会移动到两侧?
问题描述
所以我想让我的球员一直保持前进的速度,当我向左滑动或使用 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);
}
}
解决方案
您可以为此使用标志标志。例如,您可以将ì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。
推荐阅读
- c++ - 获取 H265Video 流的尺寸
- django - Django 迁移已通过,但字段未删除
- kotlin - 无法使用 libVLC 播放 YouTube 视频,media.subItems() 为空(Android、Kotlin)
- python-venv - 重新使用已在给定文件夹中创建的 venv
- sql - PostgreSQL - 转换为字符(1)与喜欢
- html - 标题 CSS 不适用于页面顶部
- visual-studio - 如何使用 OneDrive 作为已发布应用程序的更新位置
- c# - ManagementObjectSearcher WMIquery 很慢
- python - 关于向mysql数据库插入数据
- angular - Angular 11 中 MAT_DATE_LOCALE 的导入语句