如何让墙壁在unity3d中推动玩家?

时间:2014-08-23 18:05:26

标签: unity3d

如何让墙壁推动玩家?

我曾尝试使用transform.translate,但我发现直接操纵变换 对象的组件忽略了物理,有人建议我改用力。

然而,当我使用武力时,墙壁 当它击中我的播放器时停止,好像我的播放器无法移动。 以下是我的代码。

using UnityEngine;
using System.Collections;

public class left : MonoBehaviour {

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        rigidbody.AddForce (-40 * Time.deltaTime, 0, 0);

        if (transform.position.x < -14) {
            transform.position = new Vector3(15,15,908);
        }

    }
}

2 个答案:

答案 0 :(得分:0)

增加墙壁的质量或减少玩家的质量

答案 1 :(得分:0)

首先,你应该在盒子和播放器上放置一个对撞机。然后在播放器上创建一个脚本。可以告诉它当盒子与玩家相撞时,它会移动到目标位置,具体取决于所施加的力。

类似

OncollideO(){
player.transform.position.x -= Time.deltaTime * 1;
}

您无需手动设置矢量即可移动它们。

你也可以在移动游戏对象中使用左,向右,向上和向下。 也许会告诉你研究LERP,它可以帮助你编码。