🔧 Unity Game Lab | Геймдев-лаборатория
Разрабатываю динамичный fps:
https://redatomteam.itch.io/creatures
Post #52
67

Охуеть, 20 подписчиков
- 🌭 8
- 🏆 4
- 🍓 4
RE @unitygamelab
Showing posts older than #53 · Back to latest


using UnityEngine;
[CreateAssetMenu(fileName = "Enemy", menuName = "Entities/Enemy")]
public class Enemy : ScriptableObject
{
public string enemyName;
public int hp;
public int damage;
}

using UnityEngine;
[CreateAssetMenu(fileName = "NewCharacter", menuName = "Characters/CharacterData")]
public class CharacterData : ScriptableObject {
public string characterName;
public int maxHealth;
public float moveSpeed;
}
using UnityEngine;
[CreateAssetMenu(fileName = "NewCharacter", menuName = "Characters/CharacterData")]
public class CharacterData : ScriptableObject {
public string characterName;
public int maxHealth;
public float moveSpeed;
}
// PlayerController.cs
public class PlayerController : MonoBehaviour {
public CharacterData data; // Перетащите сюда SO
private int currentHealth;
void Start() {
currentHealth = data.maxHealth;
}
void Update() {
float move = Input.GetAxis("Horizontal") * data.moveSpeed;
transform.Translate(move * Time.deltaTime, 0, 0);
}
}
// Пример скрипта для кнопки
button.onClick.AddListener(() => Debug.Log("Клик!"));
inputField.onEndEdit.AddListener(text => Debug.Log($"Введено: {text}"));toggle.onValueChanged.AddListener(isOn => Debug.Log($"Состояние: {isOn}"));slider.onValueChanged.AddListener(value => audio.volume = value);
// Добавить кастомный ввод (например, для геймпада)
var es = gameObject.AddComponent<EventSystem>();
es.AddComponent<StandaloneInputModule>();
VideoPlayer vp = gameObject.AddComponent<VideoPlayer>();
vp.renderMode = VideoRenderMode.RenderTexture;
vp.targetTexture = myRenderTexture; // Ваша RenderTexture
vp.Play();
VideoPlayer vp = gameObject.AddComponent<VideoPlayer>();
vp.renderMode = VideoRenderMode.MaterialOverride;
vp.targetMaterialRenderer = GetComponent<Renderer>();
vp.Play();
VideoPlayer vp = cameraGO.AddComponent<VideoPlayer>();
vp.renderMode = VideoRenderMode.CameraFarPlane;
vp.Play();



using UnityEngine.SceneManagement;
// Загрузка сцены "Dungeon" поверх текущей
SceneManager.LoadScene("Dungeon", LoadSceneMode.Additive);
SceneManager.UnloadSceneAsync("Dungeon");SceneManager.UnloadSceneAsync(2);
Scene dungeonScene = SceneManager.GetSceneByName("Dungeon");
SceneManager.UnloadSceneAsync(dungeonScene);// Выгрузить сразу (без проверки зависимостей)
SceneManager.UnloadSceneAsync("Dungeon", UnloadSceneOptions.None);
// Безопасная выгрузка (проверяет ссылки на объекты)
SceneManager.UnloadSceneAsync("Dungeon", UnloadSceneOptions.UnloadAllEmbeddedSceneObjects);
GameObject player = GameObject.Find("Player");
SceneManager.MoveGameObjectToScene(player, SceneManager.GetActiveScene());GameObject audioManager = GameObject.Find("AudioManager");
DontDestroyOnLoad(audioManager);// Текущая сцена
Scene currentScene = SceneManager.GetActiveScene();
Debug.Log($"Текущая сцена: {currentScene.name}");
// Проверка, загружена ли сцена
if (currentScene.IsValid())
{
Debug.Log("Сцена корректна!");
}
using UnityEngine.SceneManagement;
// Загрузка сцены по имени
SceneManager.LoadScene("Level_1");
// Загрузка по buildIndex (из Build Settings)
SceneManager.LoadScene(2);
using UnityEngine;
using UnityEngine.SceneManagement;
public class LoadLevel : MonoBehaviour
{
public void LoadNextLevel()
{
// Загружаем следующий уровень (индекс текущей сцены + 1)
int nextSceneIndex = SceneManager.GetActiveScene().buildIndex + 1;
SceneManager.LoadScene(nextSceneIndex);
}
}