unity3d 删除部分游戏对象名称

k3fezbri  于 2023-04-21  发布在  其他
关注(0)|答案(3)|浏览(160)

是否可以删除游戏对象名称的一部分?例如:
我为子弹的使用示例化了游戏对象。我给予他们一个发射子弹的玩家的名字。所以如果一个玩家的名字是“本”,他的子弹就叫做本的子弹。

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

现在我想用这个名字来知道是谁给了另一个玩家最后一击。为了做到这一点,我想找到与子弹同名的玩家对象,并更新他的击杀数。所以我想删除子弹名称中的“s bullet”部分。
长话短说:是否可以删除游戏对象名称的一部分?
希望这是足够清楚en帮助真的很感激。提前感谢!
编辑:这是名称必须更改的部分:

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变量中。我打印了它,它说:这个可以用,但是现在唯一需要做的就是移除's的子弹

h43kikqp

h43kikqp1#

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

但是也许有一个不需要操作就能找到玩家名字的属性会更好?

w6mmgewl

w6mmgewl2#

长话短说:在游戏对象中保留对玩家的引用,而不是其名称。这样,如果您想增加经验或射手每次杀死的金币,则可以保存对玩家的查找。对于流弹或回收的子弹,只需将Player设置为null。

col17t5w

col17t5w3#

你可以使用Replace()函数来删除你想要的部分,像这样:

gameObject.name = gameObject.name.Replace("s bullet", "");

相关问题