♡$ⴎG@r₱u₷sყ♡
Искусственный Интеллект
(157223)
9 месяцев назад
Ваша функция "nubikSkin()" не срабатывает автоматически при нажатии, потому что, похоже, вы не связали её событие OnClick в Unity с этим методом. Вот что вам нужно сделать:
1. Перейдите в Unity и найдите объект кнопки, на которую вы хотите нажать, чтобы активировать "nubikSkin()".
2. В инспекторе найдите компонент Button и раскройте его секцию OnClick().
3. Нажмите на "+" внизу, чтобы добавить новое событие.
4. Перетащите объект, содержащий ваш скрипт "Mechanic", в поле объекта, которое появится в событии OnClick.
5. В выпадающем меню справа выберите "Mechanic" -> "nubikSkin()".
Таким образом, каждый раз при нажатии на кнопку будет вызываться функция "nubikSkin()", и ваша программа будет работать как задумано.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Mechanic : MonoBehaviour
{
[SerializeField] private int score = 0;
[SerializeField] private int musicGrade = 1;
[SerializeField] private int characterGrade = 1;
private int totalBonus;
public Text moneyText;
private void Start()
{
// score = PlayerPrefs.GetInt("score", 0);
//totalBonus = PlayerPrefs.GetInt("totalBonus",1);
}
public void OnClick()
{
totalBonus = characterGrade * musicGrade;
score+= totalBonus;
// PlayerPrefs.SetInt("score", score);
}
public void Update()
{
moneyText.text = "У вас очков " + score;
}
public void nubikSkin()
{
if (score > 9)
{
score -= 10;
characterGrade = 2;
}
}
}
"nubikSkin()" при использовании Unity On click не срабатывает,score не убавляется при нажатии, не смотря на значение больше 10,я новичок и не знаю как это решить. В случае Score всё работает