[*]В сцене с названием Stage1 игрок перемещается в сцену с названием Stage1_1 через врата.
с использованием System.Collections; использование System.Collections.Generic; использование UnityEngine; использование UnityEngine.SceneManagement; общедоступный класс ChangeSceneOnTag: MonoBehaviour { частная пустота OnTriggerEnter2D (другое Collider2D) { // При контакте с объектом с тегом "Звезда" если (other.CompareTag("Звезда")) { LoadStage1_1Сцена(); } } недействительный LoadStage1_1Scene() { SceneManager.LoadScene("Сцена1_Сцена 1"); } } [*]Из этапа 1_1 игрок переходит к определенной точке появления на этапе 1 через другие ворота. с использованием UnityEngine; использование UnityEngine.SceneManagement; общедоступный класс ChangeSceneOnTag2: MonoBehaviour { частная пустота Старт() { } частная пустота OnTriggerEnter2D (другое Collider2D) { // При контакте с объектом с тегом "Gate" если (other.CompareTag("Ворота")) { ЗагрузитьСцену1Сцена(); // Регистрируем метод, который будет вызываться после завершения загрузки сцены SceneManager.sceneLoaded += OnSceneLoaded; } } недействительный LoadStage1Scene() { SceneManager.LoadScene("Stage1_Scene"); } void OnSceneLoaded (сцена сцены, режим LoadSceneMode) { if (scene.name == "Stage1_Scene") { GameObject player = GameObject.FindGameObjectWithTag("Игрок"); GameObject spawnPoint = GameObject.Find("SpawnPoint"); if (player != null && spawnPoint != null) { player.transform.position = spawnPoint.transform.position; Камера mainCamera = Camera.main; если (mainCamera != ноль) { mainCamera.transform.position = новый Vector3(spawnPoint.transform.position.x, spawnPoint.transform.position.y, mainCamera.transform.position.z); } // Сбрасываем ParallaxBackground. СброситьПараллаксФон(); } // Удаляем этот обработчик событий, поскольку он больше не нужен. SceneManager.sceneLoaded -= OnSceneLoaded; } } void ResetParallaxBackground() { ParallaxBackground[] parallaxBackgrounds = FindObjectsOfType(); foreach (var bg в parallaxBackgrounds) { bg.ResetBackground(Camera.main.transform.position); } } } Проблема, с которой я столкнулся, связана с фоном. У меня есть код ParallaxBackground.cs.
с использованием System.Collections; использование System.Collections.Generic; использование UnityEngine; общедоступный класс ParallaxBackground: MonoBehaviour { общедоступная камера TransformTransform; public float parallaxSpeed = 0.5f; // Отрегулируйте значение от 0 до 1, чтобы изменить степень движения. частный Vector3 LastCameraPosition; недействительный старт() { LastCameraPosition = cameraTransform.position; } недействительное обновление() { Vector3 deltaMovement = cameraTransform.position - LastCameraPosition; Transform.position += new Vector3(deltaMovement.x * parallaxSpeed, deltaMovement.y * parallaxSpeed, 0f); LastCameraPosition = cameraTransform.position; } public void ResetBackground (Vector3 newCameraPosition) { LastCameraPosition = newCameraPosition; } } Однако при переходе к определенной точке SpawnPoint на этапе Stage1 этот код не работает. В результате исходный фон Stage1 не отображается. Как мне решить эту проблему?
Stage1 -> Stage1_1 -> SpawnPoint на Stage1 ==> Переход сцены в порядке. Однако ParallaxBackground.cs, связанный с переходом сцены, не работает. Игрок переместился в SpawnPoint, но фон не последовал за ним.
Переход сцены Unity - исходный фон не отображается ⇐ C#
Место общения программистов C#
-
Anonymous
1695427626
Anonymous
[*]В сцене с названием Stage1 игрок перемещается в сцену с названием Stage1_1 через врата.
с использованием System.Collections; использование System.Collections.Generic; использование UnityEngine; использование UnityEngine.SceneManagement; общедоступный класс ChangeSceneOnTag: MonoBehaviour { частная пустота OnTriggerEnter2D (другое Collider2D) { // При контакте с объектом с тегом "Звезда" если (other.CompareTag("Звезда")) { LoadStage1_1Сцена(); } } недействительный LoadStage1_1Scene() { SceneManager.LoadScene("Сцена1_Сцена 1"); } } [*]Из этапа 1_1 игрок переходит к определенной точке появления на этапе 1 через другие ворота. с использованием UnityEngine; использование UnityEngine.SceneManagement; общедоступный класс ChangeSceneOnTag2: MonoBehaviour { частная пустота Старт() { } частная пустота OnTriggerEnter2D (другое Collider2D) { // При контакте с объектом с тегом "Gate" если (other.CompareTag("Ворота")) { ЗагрузитьСцену1Сцена(); // Регистрируем метод, который будет вызываться после завершения загрузки сцены SceneManager.sceneLoaded += OnSceneLoaded; } } недействительный LoadStage1Scene() { SceneManager.LoadScene("Stage1_Scene"); } void OnSceneLoaded (сцена сцены, режим LoadSceneMode) { if (scene.name == "Stage1_Scene") { GameObject player = GameObject.FindGameObjectWithTag("Игрок"); GameObject spawnPoint = GameObject.Find("SpawnPoint"); if (player != null && spawnPoint != null) { player.transform.position = spawnPoint.transform.position; Камера mainCamera = Camera.main; если (mainCamera != ноль) { mainCamera.transform.position = новый Vector3(spawnPoint.transform.position.x, spawnPoint.transform.position.y, mainCamera.transform.position.z); } // Сбрасываем ParallaxBackground. СброситьПараллаксФон(); } // Удаляем этот обработчик событий, поскольку он больше не нужен. SceneManager.sceneLoaded -= OnSceneLoaded; } } void ResetParallaxBackground() { ParallaxBackground[] parallaxBackgrounds = FindObjectsOfType(); foreach (var bg в parallaxBackgrounds) { bg.ResetBackground(Camera.main.transform.position); } } } Проблема, с которой я столкнулся, связана с фоном. У меня есть код ParallaxBackground.cs.
с использованием System.Collections; использование System.Collections.Generic; использование UnityEngine; общедоступный класс ParallaxBackground: MonoBehaviour { общедоступная камера TransformTransform; public float parallaxSpeed = 0.5f; // Отрегулируйте значение от 0 до 1, чтобы изменить степень движения. частный Vector3 LastCameraPosition; недействительный старт() { LastCameraPosition = cameraTransform.position; } недействительное обновление() { Vector3 deltaMovement = cameraTransform.position - LastCameraPosition; Transform.position += new Vector3(deltaMovement.x * parallaxSpeed, deltaMovement.y * parallaxSpeed, 0f); LastCameraPosition = cameraTransform.position; } public void ResetBackground (Vector3 newCameraPosition) { LastCameraPosition = newCameraPosition; } } Однако при переходе к определенной точке SpawnPoint на этапе Stage1 этот код не работает. В результате исходный фон Stage1 не отображается. Как мне решить эту проблему?
Stage1 -> Stage1_1 -> SpawnPoint на Stage1 ==> Переход сцены в порядке. Однако ParallaxBackground.cs, связанный с переходом сцены, не работает. Игрок переместился в SpawnPoint, но фон не последовал за ним.
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия