KeysCG
@KeysCG
3d designer/Art Designer

Как сделать ограничение сбора предметов?

Доброго времени суток! Помогите пожалуйста.
Я сделал скрипт который позволяет собирать предметы и выводить их количество на экран, но не могу понять как сделать ограничение сбора предметов. То есть например что бы нельзя было собрать более 20 предметов (что бы они просто не поднимались больше, если их уже есть 20)
Вот код:
Это вешается на персонажа:
public class rock_player : MonoBehaviour {
	static public int rock; 

	[SerializeField]
	public Text TextRock; 

	void Start(){
		rock = 0; 
	}
}

Это вешается на объект который поднимаем:
public class RockTrig : MonoBehaviour {
	public int ValueRock; 

	void OnTriggerEnter(Collider col) { 
		rock_player.rock += ValueRock; 
		GameObject.FindGameObjectWithTag ("Player").GetComponent<rock_player> ().TextRock.text = rock_player.rock.ToString(); 
		Destroy (gameObject);
	}
}
  • Вопрос задан
  • 33 просмотра
Пригласить эксперта
Ответы на вопрос 2
PNEctarine
@PNEctarine
Unity developer
Думаю лучше сделать отслеживание триггера на персонаже, тогда мы можем посчитать кол-во предметов и поставить условие, при котором будут собираться предметы. Если триггер нужен исключительно на предмете, то просто ставь условие (как я понял это rock_player.rock)
Ответ написан
Комментировать
twobomb
@twobomb
public class rock_player : MonoBehaviour {
  static public int rock; 
  public const int MAX_ROCKS = 20; 

  [SerializeField]
  public Text TextRock {get { return rock.ToString();}}

  void Start(){
    rock = 0; 
  }
}


public class RockTrig : MonoBehaviour {
  public int ValueRock; 

  void OnTriggerEnter(Collider col) { 
  if(rock_player.rock + ValueRock > rock_player.MAX_ROCKS) {
        ValueRock -= rock_player.MAX_ROCKS - rock_player.rock;
         rock_player.rock = rock_player.MAX_ROCKS; 
}else{
    rock_player.rock += ValueRock; 
    Destroy (gameObject);
}

  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы