Unity2D:当玩家每收集10点时,增加刷出物体的移动

本文关键字:增加 移动 10点时 玩家 Unity2D | 更新日期: 2023-09-27 18:02:56

我想让我的生成对象(敌人预制物)每收集10点移动速度加快。这是我的移动脚本,附加到我的敌人预制(这样它就可以在我的游戏中产生和移动):

public static int movespeed = 20;
public Vector3 userDirection = Vector3.right;
public void Update()
{
    transform.Translate(userDirection * movespeed * Time.deltaTime); 
 }
}

这是我的分数脚本附加到我的播放器:

public Text ScoreText;
public AudioClip Coinsound;
public Text Highscoretext;
public GameObject enemy;
Movement movement;
private int Score;
public int highScore = 0;

void Start () 
{
    Score = 0;
    SetScoreText ();
    if (PlayerPrefs.HasKey ("Highscore")) 
    {
        highScore = PlayerPrefs.GetInt("Highscore");
    }
}
void OnTriggerEnter2D(Collider2D other)
{
    if (other.gameObject.CompareTag ("Pick Up")) {
        other.gameObject.SetActive (false);
        Score = Score + 1;
        SetScoreText ();
        AudioSource.PlayClipAtPoint (Coinsound, transform.position);
    }
}

如前所述,当玩家每收集10个点数时,我想让生成的敌人预制物移动得更快。谢谢:)

Unity2D:当玩家每收集10点时,增加刷出物体的移动

您使用%符号来完成此操作。Score加1后,检查Score除以10时是否有提示。如果没有余数,则自增。

if (Score % 10 == 0){
  //Increment movespeed variable  from Movement script
    Movement.movespeed += 4;
} 

将上面的代码放入OnTriggerEnter2D函数中。

由于某种原因,这看起来与另一个问题非常相似,但OP未能得到答案。