已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
11天前关闭。
Improve this question
为什么总是这样?
public float speed;
bool working = false;
// Start is called before the first frame update
void Start()
{
skilling = false;
speed = 3f;
}
// Update is called once per frame
void Update()
{
Vector3 playerInput = new Vector3(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"), 0);
transform.position = transform.position + playerInput.normalized * speed * Time.deltaTime;
if(speed >= 500f)
{
print("test");
}
}
最初我想使条件基于“工作”布尔值,以及键输入。它总是真的。
我快疯了
测试测试测试测试测试
我试着用例子中的Float、bool和collision来实现If语句,结果总是正确的,我一定是在什么地方搞砸了,但是我找不到。
编辑:完整代码:`
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class player : MonoBehaviour
{
float speed;
bool working = false;
// Start is called before the first frame update
void Start()
{
speed = 3f;
}
// Update is called once per frame
void Update()
{
Vector3 playerInput = new Vector3(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"), 0);
transform.position = transform.position + playerInput.normalized * speed * Time.deltaTime;
if(speed >= 500f)
{
print("test");
}
}
/*void OnTriggerEnter2D(Collider2D other) {
if(other.tag == "Skill")
{
//skilling = true;
}
else skilling = false;
}*/
}
“我把公众从速度变量中去掉了,这仍然是真的。
2条答案
按热度按时间ajsxfq5m1#
我很抱歉浪费你的时间,我已经找到了解决办法。我在另一个脚本中有一个循环,也返回“测试”。这是我得到一个愚蠢的原因2小时生气了。
3bygqnnd2#
可能的解决方案:
1-请确保您没有从检查器中修改速度变量,因为它是公共的。
2-确保其他等级在开始时没有改变速度变量。