Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 16.02.2013, 00:08   #1
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Манипуляции над объектом

Суть: есть массив объектов, создаваемых скриптом. Нужно подвинуть определенный объект из массива. Однако всегда двигается последний созданный объект. Что за ерунда?

using UnityEngine;
using System.Collections;

public class 
NewBehaviourScript MonoBehaviour {
    public 
GameObject myPrefab;
    public 
Material mat;
    public 
GameObject[,] ar = new GameObject[1010];
    
    
void Start ()
    {
    for (
int i=1i<7i++)
    {
        for (
int j=1j<7j++)
        {
        
ar[j,i]=myPrefab;
        
Instantiate(ar[j,i]);
        
ar[j,i].transform.position = new Vector3(j*20-20,i*20-20,150);
        
ar[j,i].transform.eulerAngles = new Vector3(18000);
                        
        
ar[j,i].name="ob"+i+j;

        }
    }
        
    
ar[5,1].transform.position += new Vector3(100203);//двигается не "ob51" а объект "ob66"
    
}
    
    
// Update is called once per frame
    
void update () {    }

__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 16.02.2013, 00:58   #2
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Манипуляции над объектом

for (int i=1i<7i++) 
    { 
        for (
int j=1j<7j++) 
        { 
        
ar[j,i] = Instantiate(myPrefab) as GameObject;
        
ar[j,i].transform.position = new Vector3(j*20-20i*20-20150); 
        
ar[j,i].transform.eulerAngles = new Vector3(18000); 
                         
        
ar[j,i].name="ob"+i+j

        } 
    } 
(Offline)
 
Ответить с цитированием
Старый 16.02.2013, 02:33   #3
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Манипуляции над объектом

Еще непонятная ерунда.
Нужно сделать делей. Гугл посоветовал вот это:
yield WaitForSeconds (5); 
однако компилятор ругается:
Unexpected symbol `(', expecting `)', `,', `;', `[', or `=' 
судя по всему пропущен оператор... но ведь все на месте!
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 16.02.2013, 02:45   #4
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Манипуляции над объектом

yield return new WaitForSeconds (5);
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.

Последний раз редактировалось pax, 16.02.2013 в 10:44.
(Offline)
 
Ответить с цитированием
Старый 16.02.2013, 22:50   #5
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Манипуляции над объектом

Теперь пишет
"The body of `NewBehaviourScript.update()' cannot be an iterator block because `void' is not an iterator interface type"
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 17.02.2013, 01:57   #6
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Манипуляции над объектом

В Update нельзя делать задержку, т.к. это остановит все приложение. К тому же Update Выполняется каждый кадр. Приведенный пример работает только в сопрограммах. http://shgames.ru/index.php?title=%D...8B_(Coroutone)
__________________
Blitz3d to Unity Wiki

Последний раз редактировалось pax, 17.02.2013 в 10:28.
(Offline)
 
Ответить с цитированием
Старый 17.02.2013, 04:24   #7
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Манипуляции над объектом

Сообщение от pax Посмотреть сообщение
В Update нельзя делать задержку, т.к. это остановит все приложение. К тому же Update Выполняется каждый кадр. Приведенный пример работает только в сопрограммах. http://shgames.ru/index.php?title=%D...%8B_(Coroutone)
В ссылке последняя скобка вышла за ссылку
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (17.02.2013)
Старый 17.02.2013, 10:29   #8
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Манипуляции над объектом

Сообщение от Andvrok Посмотреть сообщение
В ссылке последняя скобка вышла за ссылку
Форум автоматически так поставил, поправил, спасибо.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 06:10.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com