Объекты с других сцен.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Объекты с других сцен.

Сообщение agura 15 окт 2012, 07:11

Всем привет. Столкнулся с бедой, создаю персонажа хочу что бы он перешел в другую сцену и стоял там, но не чего не получается... Помогите.

Синтаксис:
Используется csharp
        public static void NewGero () //Вызываю эту функцию из другой сцены
 {
                Debug.Log("Функция пашет"); //Проверка связи
                GameObject go =  GameObject.FindGameObjectWithTag(Global.Gero); // Создаю героя (Globa.Gero) - Беру из другой сцены
                go = new GameObject(Global.GetName); // Имя присваиваю тоже из другой сцены
                go = Instantiate(go,new Vector3(12,1,28), Quaternion.identity) as GameObject;   // даю ему позицию
                }
// что не так ??! не понимаю...
 


Ошибки не какой не выдает, все прекрасно запускается. Но не работает....
[syntax=csharp]I LOVE C#[/syntax] - Примечание: Данный тэг не может быть использован в подписях.
Аватара пользователя
agura
UNец
 
Сообщения: 13
Зарегистрирован: 12 окт 2012, 03:08

Re: Объекты с других сцен.

Сообщение waruiyume 15 окт 2012, 07:33

agura писал(а):что не так ??! не понимаю...

Опишите действия кода, русским языком и станет понятно.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Объекты с других сцен.

Сообщение agura 15 окт 2012, 16:51

Я же все описал.

Синтаксис:
Используется csharp
        public static void NewGero () {
                GameObject go =  GameObject.FindGameObjectWithTag(Global.Gero);
                go = new GameObject(Global.GetName);
                go = Instantiate(go,new Vector3(12,1,28), Quaternion.identity) as GameObject;  
                }
 
[syntax=csharp]I LOVE C#[/syntax] - Примечание: Данный тэг не может быть использован в подписях.
Аватара пользователя
agura
UNец
 
Сообщения: 13
Зарегистрирован: 12 окт 2012, 03:08

Re: Объекты с других сцен.

Сообщение Woolf 15 окт 2012, 17:18

В какой игровой момент этот код выполняется?
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Объекты с других сцен.

Сообщение agura 15 окт 2012, 19:08

Woolf писал(а):В какой игровой момент этот код выполняется?

В другой сцене есть кнопка "создать", в ней прописан запуск этой функции.
[syntax=csharp]I LOVE C#[/syntax] - Примечание: Данный тэг не может быть использован в подписях.
Аватара пользователя
agura
UNец
 
Сообщения: 13
Зарегистрирован: 12 окт 2012, 03:08

Re: Объекты с других сцен.

Сообщение Woolf 15 окт 2012, 19:26

agura писал(а):
Woolf писал(а):В какой игровой момент этот код выполняется?

В другой сцене есть кнопка "создать", в ней прописан запуск этой функции.


Так в другой сцене уже все объекты уничтожены. Что ж вы ищите там уже, если их нет? Сделайте своего героя в префаб, префаб в папку Resources и инстанируйте его при старте сцены.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Объекты с других сцен.

Сообщение Андрей 18 окт 2012, 05:48

agura, существуют функция Object.DontDestroyOnLoad()

Назначение этой функции не разрушать объект при загрузке новой сцены. Ты можешь использовать эту функцию в MonoBehavior Игрока, чтобы он не разрушился при запуске новой сцены.

+ Если нужно переместить игрока в некоторую позицию на сцене (сразу после её загрузки), то нужно в том же MonoBehavior написать обработчик события загрузки уровня - MonoBehaviour.OnLevelWasLoaded

Синтаксис:
Используется csharp
// Скрипт повесить на Игрока
public class example : MonoBehaviour {

    void Awake() {
        DontDestroyOnLoad(this); // не уничтожать игрока при загрузке сцены
    }

    void OnLevelWasLoaded(int level) {
        if (level == 1){
            transform.position = ...
            transform.rotation = ...
       }
   
    }
}
Аватара пользователя
Андрей
UNIт
 
Сообщения: 89
Зарегистрирован: 06 окт 2011, 10:48


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36