c# - unity左右滑动bug
问题描述
大家好,感谢您的帮助,我正在统一创建一个手机游戏,需要左右滑动才能移动(地铁冲浪者风格)现在代码工作正常,但是当我开始游戏时,玩家总是在移动并开始非常左的车道,而不是像我希望他那样停留在中间(在他换档后,你可以很好地滑动)关于如何修复它的任何线索?
编码 :
private float startpos;
private int pos;
public float[] positionsset;
public GameObject player;
private Vector3 velocityf = Vector3.zero;
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
startpos = Input.mousePosition.x;
}
/////////////////////////////////////////////////////
else if (Input.GetMouseButtonUp(0))
{
if (Input.mousePosition.x - startpos > 0 && pos < 2)
{
pos++;
}
else if (Input.mousePosition.x - startpos < 0 && pos > 0)
{
pos--;
}
}
player.transform.position = Vector3.SmoothDamp(player.transform.position, new Vector3(positionsset[pos], player.transform.position.y, player.transform.position.z), ref velocityf, 0.1f);
}
}
解决方案
您没有初始化pos
任何东西,因此它将被设置为其默认值 0。由于 0 表示左侧车道,因此它将从左侧车道开始。只需更改int pos;
为int pos = 1;
,它应该从中间车道开始。或者,您可以创建pos
一个公共变量并在检查器中设置它的值,如果您想从另一个通道开始,这样可以更容易地进行调整。
推荐阅读
- python - 为什么在使用 create() 时不强制执行 unique=True?
- intellij-idea - 包名称与文件夹名称不同时出现 IntelliJ 错误
- tensorflow - 关于 Grpc 和 tensorflow
- javascript - “错误 webdriver:由于会话 ID 无效,请求失败,状态为 404:会话无效”
- python - Ansible:“NetworkManagementClient”对象没有属性“private_endpoints”
- php - 我如何为每日费用制作一个每月分配值的日期计算器
- java - 任务 ':rtmp_publisher:compileReleaseKotlin' 执行失败
- ios - 使用 GIF 图像滚动时 UICollectionView 滞后
- ruby-on-rails - 在 ubuntu 上安装画布时出现问题,Bundler 找不到 gem "bundle" 的兼容版本
- asp.net-core - 上证所事件源 Asp.net Core 3.1