【发布时间】:2021-12-01 10:09:44
【问题描述】:
private void OnCollisionEnter2D(Collision2D collision)
{
while (onWeapon == false && collision.gameObject.tag == "Weapon")
{
onWeapon = true;
}
if (onWeapon == true && Input.GetKey(KeyCode.E))
{
currentPos = gameObject.transform.position;
collision.transform.position = currentPos;
collision.transform.parent = player.transform;
collision.tag = "WeaponHeld";
}
}
我无法在运行时使用“OnEnterCollision2D”更改对象标签,但是当我使用“OnTriggerEnter2D”时,同一行工作正常
【问题讨论】:
-
你在统一编辑器中定义了“WeaponHeld”标签吗?
-
是的 WeaponHeld 已经是编辑器中的一个标签,这不是问题,collision.tag 本身中的“标签”
-
哦我明白了,因为collision2d不继承自组件,所以你不能直接访问标签。但您可以访问转换。然后你可以像这样从变换中获取标签。 collision.transform.tag = "WeaponHeld";
-
当你尝试改变游戏对象的标签而不是直接在碰撞中做时,它仍然不起作用?
标签: c# unity3d game-engine game-development