微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Unity 2D 中使软体更有弹性?

如何解决如何在 Unity 2D 中使软体更有弹性?

我在 Unity 中制作了一个果冻软体,我试图让它更有弹性(以便在物体落在它上面后,它弹到空中的高度比平时高),但我似乎无法理解出了怎么做。我试图改变要反弹的物体的每个方面以及我能找到的果冻本身,例如弹簧关节频率和软体的刚体组件,但没有任何东西使它从果冻中反弹得更多。我遵循了本教程:https://www.youtube.com/watch?v=3avaX00MhYc 但做了一个中心骨骼,而不是在两侧使用骨骼。以下是不同方面的一些截图:https://imgur.com/a/KBuvRPk 在过去的一周里,这一直困扰着我,所以如果有任何想法,我将不胜感激。

解决方法

我已经想通了,结果证明我只需要向对象添加力,以通过软体反弹 OnCollisionExit 以及使用对象向 OnCollisionEnter 向下的软体骨骼添加力,以便它仍然保持效果。如果其他人想在他们的游戏中实现类似的东西,这是我的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class jellyBounce : MonoBehaviour
{
    public int speedBounce = 500;
    public int speedInward = 500;

     void OnCollisionEnter2D(Collision2D other)
     {
         if (other.gameObject.tag == "BounceMe")
         {
             speedInward = 300;
             gameObject.GetComponent<Rigidbody2D>  ().AddForce(Vector2.down*speedInward);
         }
         else if (other.gameObject.tag == "AlreadyBouncy")
         {
             speedInward = 50;
             gameObject.GetComponent<Rigidbody2D>().AddForce(Vector2.down*speedInward);
         }

     }

     void OnCollisionExit2D(Collision2D other)
     {
         if (other.gameObject.tag == "BounceMe")
         {
             speedBounce = 600;
             other.gameObject.GetComponent<Rigidbody2D>().AddForce(Vector2.up*speedBounce);
         }
         else if (other.gameObject.tag == "AlreadyBouncy")
         {
             speedBounce = 100;
             other.gameObject.GetComponent<Rigidbody2D>().AddForce(Vector2.up*speedBounce);
         }

     }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。