我正在制作一款游戏,其中角色在人与鸟之间切换。当他是人类时,他可以推桶。当他是一只鸟时,我想增加枪管的重量,这样就很难推动。我目前在玩家和枪管上都有BoxCollider2D和RigidBody2D。没有触发器设置。当玩家触摸它时,如何改变物体的质量?
这是我在桶上的脚本。
private GrimScript script;
private Rigidbody2D rb;
public float normalMass = 10f;
public float heavyMass = 100f;
// Use this for initialization
void Awake()
{
script = GameObject.FindGameObjectWithTag("Player").GetComponent<GrimScript>();
rb = gameObject.GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
}
void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.CompareTag("Player") && script.amIRaven)
{
rb.mass = heavyMass;
}
else
{
rb.mass = normalMass;
}
}
为什么不减少玩家的质量/力量?这看起来更准确,并且不必调整可能推送的所有内容的质量。 – Carcigenicate