我的玩家不尊重盒子对撞机
My player doesn't respect the box collider
我正在为播放器(红色立方体)编程...在我的场景中有很多墙...不幸的是我的播放器穿过墙...我该如何解决?
这是我的脚本 (js):
#pragma strict
function Start () {
}
function Update () {
if(Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.A)) {
transform.Translate(Vector3.left * Time.deltaTime);
}
if(Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D)) {
transform.Translate(Vector3.right * Time.deltaTime);
}
if(Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W)) {
transform.Translate(Vector3.forward * Time.deltaTime);
}
if(Input.GetKey(KeyCode.DownArrow) || Input.GetKey(KeyCode.S)) {
transform.Translate(Vector3.back * Time.deltaTime);
}
}
我的玩家有一个盒子碰撞器,我的墙也有一个……(他没有触发)……
将 Rigidbody
附加到您的播放器 gameobject
要使碰撞在 Unity 中起作用,其中一个碰撞对象需要附加 Rigidbody
。 Rigidbody
通常附加到非静态的 gameobject
。在您的情况下,您的播放器 gameobject
是非静态的,需要附加一个 Rigidbody
才能处理碰撞。
直觉上,Collider
s 和 RigidBody
之间的区别可以认为如下。
物理计算是在另一个世界完成的,也就是说,物理引擎有自己的世界,所有calculations/simulations都在那里完成。 Collider
s 实际上为物理模拟器提供信息(作为信息输入),而 RigidBody
s 在另一侧充当输出管道。
+-----------+
| +---+ | input
| | A |---|---------->
| +---+ |
| | Physics Calculation World
| +---+ | output
| | B |<--|-----------
| +---+ |
+-----------+
这张图中,A
只是一个碰撞器,B
有一个刚体。
input
:向物理计算世界发送物理相关信息。 (被动行动)
output
:提供来自物理世界的信息并将它们应用到游戏对象。 (积极行动)
因此,我们可以总结如下:
Collider
:物理模拟的被动/信息提供者。
RigidBoy
:活动/将物理计算结果应用于游戏对象。
我正在为播放器(红色立方体)编程...在我的场景中有很多墙...不幸的是我的播放器穿过墙...我该如何解决?
这是我的脚本 (js):
#pragma strict
function Start () {
}
function Update () {
if(Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.A)) {
transform.Translate(Vector3.left * Time.deltaTime);
}
if(Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D)) {
transform.Translate(Vector3.right * Time.deltaTime);
}
if(Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W)) {
transform.Translate(Vector3.forward * Time.deltaTime);
}
if(Input.GetKey(KeyCode.DownArrow) || Input.GetKey(KeyCode.S)) {
transform.Translate(Vector3.back * Time.deltaTime);
}
}
我的玩家有一个盒子碰撞器,我的墙也有一个……(他没有触发)……
将 Rigidbody
附加到您的播放器 gameobject
要使碰撞在 Unity 中起作用,其中一个碰撞对象需要附加 Rigidbody
。 Rigidbody
通常附加到非静态的 gameobject
。在您的情况下,您的播放器 gameobject
是非静态的,需要附加一个 Rigidbody
才能处理碰撞。
直觉上,Collider
s 和 RigidBody
之间的区别可以认为如下。
物理计算是在另一个世界完成的,也就是说,物理引擎有自己的世界,所有calculations/simulations都在那里完成。 Collider
s 实际上为物理模拟器提供信息(作为信息输入),而 RigidBody
s 在另一侧充当输出管道。
+-----------+
| +---+ | input
| | A |---|---------->
| +---+ |
| | Physics Calculation World
| +---+ | output
| | B |<--|-----------
| +---+ |
+-----------+
这张图中,A
只是一个碰撞器,B
有一个刚体。
input
:向物理计算世界发送物理相关信息。 (被动行动)output
:提供来自物理世界的信息并将它们应用到游戏对象。 (积极行动)
因此,我们可以总结如下:
Collider
:物理模拟的被动/信息提供者。RigidBoy
:活动/将物理计算结果应用于游戏对象。