[英]Unity 2D addforce with random direction for the object
请帮助我! 因此,我正在做一个骇人的麻袋游戏,但是当我踢物体时,它只是在没有随机方向和力的情况下上升。 而且我希望角色在奔跑和闲置时不要撞到物体,我只希望角色踢动时撞到物体。
这是我的玩家代码。
if (canSipa == true)
{
_pitcha.GetComponent<Rigidbody2D>().AddForce(new Vector2(1000, 5000));
}
}
对于对象:
private void OnTriggerEnter2D(Collider2D collision)
{
if(collision.gameObject.tag == "Player")
{
_player.GetComponent<PlayerManager>().canSipa = true;
}
}
private void OnTriggerExit2D(Collider2D collision)
{
if (collision.gameObject.tag == "Player")
{
_player.GetComponent<PlayerManager>().canSipa = false ;
}
}
这是因为在此行中,您将定义一个具有固定方向和力的vector2:
pitcha.GetComponent<Rigidbody2D>().AddForce(new Vector2(1000, 5000));
您可以使用Random.Range创建vector2:
var direction = Random.Range(-1000, 1000);
//This way you can go right and left
var force = Random.Range(3000,5000);
//This way you can variate the force
pitcha.GetComponent<Rigidbody2D>().AddForce(new Vector2(direction,force));
使用公共浮点作为值(maxDirection,minDirection ...),以便在播放时可以更改值。 希望对您有所帮助。
您可以使用向量数学来抽象方向和力:
Vector2 direction = new Vector2((float)Random.Range(-1000,1000), (float)Random.Range(-1000,1000));
float force = (float)Random.Range(-1000,1000);
pitcha.GetComponent<Rigidbody2D>().AddForce(direction * force);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.