Unity3d 这个统一脚本没有理由让精灵移动,但它会移动 代码如下:

Unity3d 这个统一脚本没有理由让精灵移动,但它会移动 代码如下:,unity3d,Unity3d,使用UnityEngine public class playerMovement : MonoBehaviour { public Rigidbody2D rb; public float strength = 100f; void Start () { //Initialize the body of the sprite so that forces //can be applied. rb = GetCompo

使用UnityEngine

public class playerMovement : MonoBehaviour {

    public Rigidbody2D rb;
    public float strength = 100f;


    void Start () {
        //Initialize the body of the sprite so that forces
        //can be applied.
        rb = GetComponent<Rigidbody2D>();
    }


    // Update is called once per frame
    void FixedUpdate () {
        //Note2Self: var says this is a variable of unspecified type.
        var touch = new Touch();

        /*
        if (touch.phase == TouchPhase.Began){
            rb.AddForce(transform.forward * strength);
        }*/

        if (Input.anyKey)
            rb.position.Set(0, 100);
    }
}
我试图在Unity中练习一些基本的东西,我根本不习惯在IDE中编程,到目前为止,当我偶然发现这个奇怪的东西时,我们刚刚在我的程序中使用了vim

首先,我不明白为什么精灵会在没有触摸识别的情况下移动,因为我还没有在移动设备上测试过。所以我把它注释掉了,出于某种原因,精灵仍然在移动。该代码不应该做任何事情,但它确实做了

我已经检查了精灵是否使用了最新的脚本-它是-并且我已经检查了脚本是否针对正确的刚体,它是否是rigidbody2D。是的


发生了什么事?

我查看了unity文档: 也就是说,将刚体2D组件应用于一个对象,将使其处于物理引擎的控制之下

Rigidbody2D类在2D中提供的功能与Rigidbody类在3D中提供的功能基本相同。向sprite添加Rigidbody2D组件将使其处于物理引擎的控制之下。就其本身而言,这意味着精灵将受到重力的影响,并且可以通过使用力的脚本进行控制

我不止一次遇到刚体的问题,我建议您在unity inspector窗口中检查刚体2D组件,并确保取消选中use gravity


此外,您可能希望只编写自定义脚本而不使用刚体。在youtube上搜索可能会为您提供所需的信息。希望这有帮助

我查看了unity文档: 也就是说,将刚体2D组件应用于一个对象,将使其处于物理引擎的控制之下

Rigidbody2D类在2D中提供的功能与Rigidbody类在3D中提供的功能基本相同。向sprite添加Rigidbody2D组件将使其处于物理引擎的控制之下。就其本身而言,这意味着精灵将受到重力的影响,并且可以通过使用力的脚本进行控制

我不止一次遇到刚体的问题,我建议您在unity inspector窗口中检查刚体2D组件,并确保取消选中use gravity


此外,您可能希望只编写自定义脚本而不使用刚体。在youtube上搜索可能会为您提供所需的信息。希望这有帮助

如果它刚刚落下,可能会受到重力的影响

您可以通过添加rb.gravityScale=0在脚本中关闭此功能;在开始函数的末尾


通过在编辑器中的刚体组件内部设置它,如果它刚刚下落,可能会受到重力的影响

您可以通过添加rb.gravityScale=0在脚本中关闭此功能;在开始函数的末尾


通过在刚体组件内部的编辑器中设置它,最好是选中IsKinetic或切换约束。最好是选中IsKinetic或切换约束。