【发布时间】:2018-11-01 03:24:12
【问题描述】:
我正在制作一个无尽的跑步游戏,但我遇到了一个问题。我需要我的角色从左到右移动,但它不会这样做。 我需要它从左到右平稳移动,而不是在车道上。因为我的游戏会在整个路径中弹出随机对象。
我已经在 Unity 中将左右键分配给了 A 和 D。
这是我的代码吗?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Ballmove : MonoBehaviour {
public KeyCode moveL;
public KeyCode moveR;
public float horizVel = -4;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
GetComponent<Rigidbody>().velocity = new Vector3(-4, 0, 0);
if (Input.GetKeyDown(moveL))
{
horizVel = -5;
StartCoroutine(stopSlid());
}
if (Input.GetKeyDown(moveR))
{
horizVel = 5;
StartCoroutine(stopSlid());
}
}
IEnumerator stopSlid()
{
yield return new WaitForSeconds(1);
horizVel = -4;
}
}
【问题讨论】:
-
你调试过你的代码吗?
horizVel未分配给此代码中的任何组件,因此这意味着您没有移动任何东西。 -
调试什么也没告诉我。但我确实找到了我的问题,谢谢你!
-
看来你从来没有真正使用过你的 horizVel 变量,你将速度分配到最左边,不管一切
-
也许这只是我个人的喜好,但我会使用 MovePosition 而不是设置速度。
-
@Kunak 你会提交你的解决方案作为答案吗?您可以接受自己的答案。我不想留下“我解决了,它。谢谢!”的问题。并没有列出任何实际答案。
标签: c# visual-studio unity3d