删除部分Gameobject名称

时间:2011-11-11 12:01:37

标签: unity3d

是否可以删除给予GameObject的名称的一部分?例如:

我实例化游戏对象以使用子弹。我给他们射击子弹的球员的名字。因此,如果玩家的名字是“Ben”,那么他的子弹就被称为Ben的子弹。

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变量中。我打印了它,然后说:Playername的子弹。这是有效的,但现在唯一需要的是被删除的子弹

2 个答案:

答案 0 :(得分:2)

int suffixLength = "'s bullet".Length;
string player = gameObject.name.Substring(0, gameObject.name.Length - suffixLength);

但也许最好有一个不需要操纵才能找到玩家名字的属性?

答案 1 :(得分:1)

长话短说:在GameObject中保留对玩家的引用,而不是其名称。这样你可以节省玩家的仰视,例如,增加射手对每次杀戮的体验或金币。对于流弹或子弹,只需将Player设置为null。