如何让墙壁推动玩家?
我曾尝试使用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);
}
}
}
答案 0 :(得分:0)
增加墙壁的质量或减少玩家的质量
答案 1 :(得分:0)
首先,你应该在盒子和播放器上放置一个对撞机。然后在播放器上创建一个脚本。可以告诉它当盒子与玩家相撞时,它会移动到目标位置,具体取决于所施加的力。
类似
OncollideO(){
player.transform.position.x -= Time.deltaTime * 1;
}
您无需手动设置矢量即可移动它们。
你也可以在移动游戏对象中使用左,向右,向上和向下。 也许会告诉你研究LERP,它可以帮助你编码。