Space Invaders - доступ ко всем инопланетным префабам на сцене для увеличения их скорости - PullRequest
0 голосов
/ 30 января 2019

Я только начал изучать код (C #) в Unity, и я уже в процессе создания своего собственного клона Space Invaders, но я застрял на логике постепенного увеличения скорости ВСЕХ чужих префабов в игре.теперь они двигаются слева направо и вниз.Я был бы признателен, если бы кто-то мог предоставить мне / или объяснить логику кодирования о том, как это сделать?

Ответы [ 2 ]

0 голосов
/ 30 января 2019

в c #

GameObject[] spaceinvader;
int length;
// Start is called before the first frame update
void Start()
{
    spaceinvader = GameObject.FindGameObjectsWithTag("your tag");
    length = spaceinvader.Length;
}

// Update is called once per frame
void increasespeed()
{
    for (int i = 0; i < length; i++)
    {
        spaceinvader[i].GetComponent<yourspeedscript>().speed += 1;
    }
}

это должно работать, если ваша скорость / движение контролируется другим сценарием, но если нет, вы можете легко увеличить скорость космического захватчика в функции увеличения скорости ().

0 голосов
/ 30 января 2019

Можно в единстве дать тегу prefabs.После этого можно получить доступ ко всем префабам с определенным тегом.Это отличный способ справиться с несколькими префабами, поскольку он позволяет группировать префабы любым удобным для вас способом.

Это фрагмент JavaScript, но он также применим и к c #.

function makechild(){
  objs =  GameObject.FindGameObjectsWithTag ("things to group");
  for (obj in objs){
    obj.transform.parent = parentObj.transform;
  }
}

Другой способ - создать общедоступную переменную, которую вы можете применить ко всем своим префабам, однако она будет немного менее гибкой, конечно, это зависит от ваших потребностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...