按键刚体移动物体

大家都知道物体移动需要遵循物理原则,那怎么实现这一功能呢?
加上刚体,通过代码来达到按键控制的目的

public GameObject obj;
    public Rigidbody r;
    private void Start()
    {
        obj = GameObject.Find("Cube");
        r = obj.GetComponent<Rigidbody>();
    }
    private void Update()
    {
         if (Input.GetKey(KeyCode.UpArrow))
        {
            r.AddForce(new Vector3(0, 0, 10), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.W))
        {
            r.AddForce(new Vector3(0, 0, 10), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.DownArrow))
        {
            r.AddForce(new Vector3(0, 0, -10), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.S))
        {
            r.AddForce(new Vector3(0, 0, -10), ForceMode.Force);        }
        if (Input.GetKey(KeyCode.A))
        {
            r.AddForce(new Vector3(-10, 0, 0), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            r.AddForce(new Vector3(-10, 0, 0), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.D))
        {
            r.AddForce(new Vector3(10, 0, 0), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.RightArrow))
        {
            r.AddForce(new Vector3(10, 0, 0), ForceMode.Force);
        }
        if (Input .GetKeyDown(KeyCode.Space))
        {
            r.AddForce(new Vector3(0, 10, 0),ForceMode.VelocityChange);
        }
    }
[RequireComponent(typeof(Rigidbody))]//必须有刚体
public class putint : MonoBehaviour
{
    public GameObject obj;
    private void Start()
    {
        obj = GameObject.Find("Cube");
        r = obj.GetComponent<Rigidbody>();
    }
    private void Update()
    {
        if (Input.GetKey(KeyCode.UpArrow))
        {
            r.AddForce(new Vector3(0, 0, 10), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.W))
        {
            r.AddForce(new Vector3(0, 0, 10), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.DownArrow))
        {
            r.AddForce(new Vector3(0, 0, -10), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.S))
        {
            r.AddForce(new Vector3(0, 0, -10), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.A))
        {
            r.AddForce(new Vector3(-10, 0, 0), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            r.AddForce(new Vector3(-10, 0, 0), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.D))
        {
            r.AddForce(new Vector3(10, 0, 0), ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.RightArrow))
        {
            r.AddForce(new Vector3(10, 0, 0), ForceMode.Force);
        }
        if (Input .GetKeyDown(KeyCode.Space))
        {
            r.AddForce(new Vector3(0, 10, 0),ForceMode.VelocityChange);
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

友情链接更多精彩内容