Top.Mail.Ru
Ответы

Не работает код в юнити

выдает такую ошибку Assets\Scenes\скрипты\player skripts\healthplayer.cs(25,26): error CS0117: 'SceneManager' does not contain a definition for 'loadScene'
вот код
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.SceneManagement;

public class healthplayer : MonoBehaviour
{
public static byte health;
public static bool gameOver;
public TextMeshProUGUI playerHealthText;

void Start()
{
health = 100;
gameOver = false;
}

void Update()
{
playerHealthText.text = "" + health;

if (gameOver)
{
SceneManager.loadScene("level");
}
}

public static void Damage (byte damageCount)
{
health -= damageCount;

if (health <= 0)
{
gameOver = true;
}
}

}

По дате
По рейтингу
Аватар пользователя
Просветленный

Ошибка связана с тем, что вы пытаетесь вызвать метод loadScene, которого не существует в SceneManager. Правильный метод называется LoadScene (обратите внимание на заглавные буквы).

### Исправленный код:

1234567891011121314151617181920212223242526272829303132333435363738
 using System.Collections;  
using System.Collections.Generic;  
using TMPro;  
using UnityEngine;  
using UnityEngine.SceneManagement; 
 
public class healthplayer : MonoBehaviour  
{  
    public static byte health;  
    public static bool gameOver;  
    public TextMeshProUGUI playerHealthText;  
 
    void Start()  
    {  
        health = 100;  
        gameOver = false;  
    }  
 
    void Update()  
    {  
        playerHealthText.text = "" + health;  
 
        if (gameOver)  
        {  
            SceneManager.LoadScene("level"); // Используем LoadScene с заглавной буквы L 
        }  
    }  
 
    public static void Damage(byte damageCount)  
    {  
        health -= damageCount;  
 
        if (health <= 0)  
        {  
            gameOver = true;  
        }  
    }  
}  

### Объяснение изменений:

1. Исправление метода LoadScene:
- Замените SceneManager.loadScene("level"); на SceneManager.LoadScene("level");. Это изменение исправляет использование неправильного имени метода.

Также убедитесь, что вы включили все необходимые using-директивы (как в вашем случае с UnityEngine.SceneManagement, что вы уже сделали правильно).