在 C# 中收集 X 项时的 SpeedBoost
SpeedBoost when you collect X items in c#
我想编写代码,当我的玩家收集到 5 件物品时(因此当 paintCount = 5 时),玩家会在短时间内获得速度提升并且计数器返回零。但我什至不知道如何让我的播放器运行得更快。当我想将速度变量乘以 2 时它会出错。欢迎任何帮助(在 c# 中)。
速度变量在我的球员运动的主脚本中。
错误:
"Only assignment, call, increment, decrement, await and new object expressions can be used as a statement."
using UnityEngine;
using System.Collections;
public class Paintser : PowerUp
{
public static int paintCount = 0;
public void SpeedUp()
{
if (paintCount == 5)
{
SimplePlayer0.speed * 2;
}
}
}
其他class:
using UnityEngine;
using System.Collections;
public class PowerUp : MonoBehaviour
{
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Player")
{
Destroy(this.gameObject);
Paintser.paintCount++;
}
}
}
执行 SimplePlayer0.speed *= 2
以解决您的编译错误。
在您的代码中,您只是将 SimplePlayer0.speed 乘以 2,但没有将其分配给任何东西。您输入的内容被简单地解释为:获取 SimplyPlayer0.speed
的值并将其乘以二。它不会将 计算结果 保存为 SimplyPlayer0.speed
.
的新值
SimplePlayer0.speed * 2;
这不是一个有效的赋值,它只是一个乘法,不能独立存在。你需要使用
SimplePlayer0.speed = SimplePlayer0.speed * 2;
或者
SimplePlayer0.speed *= 2;
这两个等价的意思是:将SimplePlayer0.speed
乘以2
并将结果赋值给SimplePlayer0.speed
。
我想编写代码,当我的玩家收集到 5 件物品时(因此当 paintCount = 5 时),玩家会在短时间内获得速度提升并且计数器返回零。但我什至不知道如何让我的播放器运行得更快。当我想将速度变量乘以 2 时它会出错。欢迎任何帮助(在 c# 中)。
速度变量在我的球员运动的主脚本中。
错误: "Only assignment, call, increment, decrement, await and new object expressions can be used as a statement."
using UnityEngine;
using System.Collections;
public class Paintser : PowerUp
{
public static int paintCount = 0;
public void SpeedUp()
{
if (paintCount == 5)
{
SimplePlayer0.speed * 2;
}
}
}
其他class:
using UnityEngine;
using System.Collections;
public class PowerUp : MonoBehaviour
{
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Player")
{
Destroy(this.gameObject);
Paintser.paintCount++;
}
}
}
执行 SimplePlayer0.speed *= 2
以解决您的编译错误。
在您的代码中,您只是将 SimplePlayer0.speed 乘以 2,但没有将其分配给任何东西。您输入的内容被简单地解释为:获取 SimplyPlayer0.speed
的值并将其乘以二。它不会将 计算结果 保存为 SimplyPlayer0.speed
.
SimplePlayer0.speed * 2;
这不是一个有效的赋值,它只是一个乘法,不能独立存在。你需要使用
SimplePlayer0.speed = SimplePlayer0.speed * 2;
或者
SimplePlayer0.speed *= 2;
这两个等价的意思是:将SimplePlayer0.speed
乘以2
并将结果赋值给SimplePlayer0.speed
。