所以我有一个二维游戏对象,其行为就像一个尖峰陷阱,当角色碰撞触发器时会跳出地面。我对GameObject的刚体2D使用AddForce来控制它从地面出来时的速度,我希望它只是伸出地面。当达到特定的转换Y值时如何停止它。
这是我的代码:
public float speed;
Rigidbody2D rb;
void Start () {
rb = GetComponent<Rigidbody2D>();
}
void Update () {
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.tag == "Player")
{
rb.AddForce(new Vector2(0, speed * Time.time), ForceMode2D.Impulse);
}
}
答案 0 :(得分:0)
是某些变换值还是某些transform.position值?
我会这样做:
private float threshold = 10f;
private float startPosition = 0;
private RigidBody2D pikeRigidbody;:
private void Start()
{
startPosition = = this.transform.position;
pikeRigidbody = this.GetComponent<RigidBody2D>();
}
private void Update(){
if(this.transform.position.y >= (startPosition.y + threshold))
{
pikeRigidbody.velocity = Vector3.zero;
}
}
并将脚本附加到派克对象。
已编辑为position.y而不是position