gpt4 book ai didi

c# - 为什么我的刚体不会在碰撞时停止移动?

转载 作者:太空宇宙 更新时间:2023-11-03 20:57:39 25 4
gpt4 key购买 nike

我是 Unity 新手。

下面是我的简单角色 Controller C# 脚本。我正在使用带有盒式碰撞器和刚体的 3d 立方体作为我的墙和播放器。目前,当我的播放器接触到墙壁时,它会继续前进。

为什么我的脚本不起作用?

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

public class Controller : MonoBehaviour {

public float speed = 180;

private Rigidbody rig;

private Vector3 movement;
// Use this for initialization
void Start () {

rig = GetComponent<Rigidbody>();
}

// Update is called once per frame
void FixedUpdate () {

if (rig.velocity.magnitude <= 0)
{
if (Input.GetKeyUp("up"))
rig.velocity = new Vector3(0, 0, rig.position.z * speed );
else if (Input.GetKeyUp("down"))
rig.velocity = new Vector3(0, 0, rig.position.z * speed * -1);
else if (Input.GetKeyUp("right"))
rig.velocity = new Vector3(rig.position.x * speed, 0, 0);
else if (Input.GetKeyUp("left"))
rig.velocity = new Vector3(rig.position.x * speed * -1, 0, 0);
}
}

void OnCollisionEnter(Collision collision)
{
rig.velocity = Vector3.zero;
}
}

最佳答案

上面的脚本有效...我的 y 位置高于我的墙的位置,所以从来没有发生任何碰撞。我觉得很蠢。留下帖子以提醒我的失败。

关于c# - 为什么我的刚体不会在碰撞时停止移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48816483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com