Удалить часть имени Gameobject - PullRequest
0 голосов
/ 11 ноября 2011

Можно ли удалить часть имени, присвоенного GameObject?Например:

Я создаю экземпляры игровых объектов для использования пуль.Я даю им имя игрока, стреляющего в пулю.Поэтому, если игрока зовут «Бен», его пули называются пулями Бена.

gameObject.name = playerName + "'s bullet";

Теперь я пытаюсь использовать это имя, чтобы знать, какой человек наносит последний удар другому игроку.И для этого я хочу найти объект игрока с тем же именем, что и у пули, и обновить его счетчик убийств.Поэтому я хочу удалить часть «маркера» из имени маркера.

Короче говоря: можно ли удалить часть имени, присвоенного GameObject?

Надеждачто это достаточно ясно, и помощь действительно ценится.Заранее спасибо!

Редактировать: это часть, где имя должно быть изменено:

if(other.gameObject.tag == "bullet"){

         var colBullet = other.transform.name;
         playerHealth = playerHealth - 5;

         if(playerHealth <= 0){
          onDie();
          //colBullet = colBullet - "'s bullet";
          GameObject.Find(colBullet);
         }       }

Имя объекта столкновения помещается в переменную colBullet.Я распечатал его и там написано: Пуля игрока.Это работает, но теперь единственное, что ему нужно, - это удаление пули

Ответы [ 2 ]

2 голосов
/ 11 ноября 2011
int suffixLength = "'s bullet".Length;
string player = gameObject.name.Substring(0, gameObject.name.Length - suffixLength);

Но, может быть, было бы лучше иметь свойство, которое не требует манипулирования, чтобы найти имя игрока?

1 голос
/ 13 ноября 2011

Короче говоря: сохраните ссылку на игрока в вашем GameObject вместо его имени. Таким образом, вы экономите на поисках игрока, если хотите, например, увеличить опыт или золото, которое стрелок имеет за каждое убийство. Для случайных или переработанных пуль просто установите Player в ноль.

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