我在Unity玩2D平台游戏,我希望像春天一样有刺猬索尼克,当你踩到它时,玩家会被反弹得非常高。到目前为止我想出的是这个。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bouncing : MonoBehaviour
{
public Vector2 bouncingPower;
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.CompareTag ("Player"))
{
other.gameObject.GetComponent<Rigidbody2D>().velocity = new Vector2 (bouncingPower.x, bouncingPower.y);
}
}
这有效,但仅适用于y轴。我为y设置了力量,当玩家踩到保镖时,它将被弹回高位,具体取决于y值。
然而,我也想让保镖处于对角位置,所以当玩家与这种保镖碰撞时,玩家会被对角地抛出,但是当我设置x值时,它也有效。玩家只会向侧面倾斜一点,并且关于它。我知道设置这些值只会决定玩家被反弹的强度,而不是设置角度。
有什么好的解决方案让玩家被投入,让我们说,45度?我希望如果玩家只能在x轴上弹跳,但不是真正的强制性。
答案 0 :(得分:-1)
我知道这不是最好的解决方案,事实上我最初会做同样的事情,用X-Y矢量设置刚体速度。
但如果您说这不起作用,您可以尝试在&#34;跳线&#34;中添加效果器。
这是一个关于2d效应器如何工作的好教程。