Игра, в которой я участвую, имеет характер и врага. Когда персонаж получает удар, он закрывает здоровье. Если персонаж может избежать попадания в течение 10 секунд, он восстанавливает 5 очков здоровья. Если пройдет еще 10 секунд, и он все равно не получает удар, он получает еще 5 очков, и это продолжается, пока персонаж не достигнет полного здоровья. Если персонаж получает хиты до завершения 10 секунд, он теряет здоровье, и время начинается.UnityScript: обновление функции работоспособности
В настоящее время, когда я запускаю сценарий C#, он делает все, кроме как поддерживать здоровье игроку. Если меня ударят, он записывает время. Прошло 10 секунд, и это дает мне здоровье, но после этого функция Update
не продолжает давать мне здоровье, она просто делает это один раз. Я думаю, что моя логика где-то неверна. Что вы, ребята, думаете?
public Slider healthBar;
public float HitResetTimer; //Resetsthetimerto0whenihavebeenhitwithinthe10seconds;
bool beenHit; //Return true or false if ihave been hit
float hitTimer; //keeps track of time from 0 to 10 if i have not been hit
void Awake()
{
beenHit=false; //player has not been hit so= false
hitTimer=0.0f; //Set to 0 because i have not been hit yet so no time needs to be registered
}
void OnTriggerEnter(Collider other)
{
healthBar.value-=10;//If enemy hits character loses 10 points
beenHit= true; //Is set to true because i have been hit
hitTimer= HitResetTimer;//If cube hits something hitTimer is no longer time that has occured but reset to 0
}
void RestoreHealth()
{
if(!beenHit&& healthBar.value<100)
healthBar.value+=2;
}
//Usethisfor initialization
void Start() {
}
//Updateiscalledonceper frame
void Update() {
if(beenHit)
{
hitTimer -=Time.deltaTime;
if(hitTimer<0)
{
beenHit = false;
RestoreHealth();
}
}
}
'healthBar.value- = 100; // Если противник попадает персонаж теряет 10 points' Вы комментировал теряет 10 HP, но вычесть 100. –
OPPS извините моя ошибка – NBera
восстанавливает 5 очков здоровья:' healthBar.value + = 2' :) –