是否可以删除给予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的子弹。这是有效的,但现在唯一需要的是被删除的子弹
答案 0 :(得分:2)
int suffixLength = "'s bullet".Length;
string player = gameObject.name.Substring(0, gameObject.name.Length - suffixLength);
但也许最好有一个不需要操纵才能找到玩家名字的属性?
答案 1 :(得分:1)
长话短说:在GameObject中保留对玩家的引用,而不是其名称。这样你可以节省玩家的仰视,例如,增加射手对每次杀戮的体验或金币。对于流弹或子弹,只需将Player设置为null。