Unity2D:当玩家每10分收集一次时,增加产卵对象的移动

时间:2016-08-18 19:06:38

标签: c# unity3d

我希望我的玩家收集的每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);

    }
}

如前所述,当我的玩家收集每十分时,我想让我的衍生敌人预制件移动得更快。谢谢:))

1 个答案:

答案 0 :(得分:1)

您使用%符号来执行此操作。向Score添加1后,检查Score除以10时是否有提醒。如果没有余数,则增加。不要增加余数。

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

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

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