C# 错误 C0115:GetComponent<Rigedbody2D>

C# error C0115: GetComponent<Rigedbody2D>

我对JAVA的了解一般,最近想试试unity。因此,有了 YT 教程 (https://www.youtube.com/watch?v=V7YhzzfiW9c) 和我开始的一些美好希望,Unity 使用 C#,所以一切顺利。但是视频中的那个人似乎使用的是 unity 4 之类的东西,从那时起就有了命令:RigedBody2D.something.something;更改为 GetComponent(something);。所以当我更改它时,我得到了 CS0115 错误。

这是我使用的代码:

using UnityEngine;
using System;

public class Player : Entity {

    void Start () {
 
 }
 
 void Update () {

        if ((Input.GetKey(KeyCode.Z)) || (Input.GetKey(KeyCode.UpArrow))) {

            GetComponent<Rigidbody2D>(transform.position += Vector3.up * speed * Time.deltaTime);

        }

        if ((Input.GetKey(KeyCode.D)) || (Input.GetKey(KeyCode.RightArrow))) {

            GetComponent<Rigidbody2D>(transform.position += Vector3.right * speed * Time.deltaTime);

        }

        if ((Input.GetKey(KeyCode.S)) || (Input.GetKey(KeyCode.DownArrow))) {

            GetComponent<Rigidbody2D>(transform.position += Vector3.down * speed * Time.deltaTime);

        }

        if ((Input.GetKey(KeyCode.Q)) || (Input.GetKey(KeyCode.LeftArrow))) {

            GetComponent<Rigidbody2D>(transform.position += Vector3.left * speed * Time.deltaTime);

        }
    }
}

这是错误信息:

严重性代码说明项目文件行抑制状态 错误 CS1501 方法 'GetComponent' 没有重载需要 1 个参数 KnightRPG.CSharp C:\Users\beheerder\Documents\KnightRPG\Assets\Code\Entities\Player\Player.cs 14 Active

我不知道为什么会这样,但如果你能帮助我,我会很高兴的!坦克你!

-SV

如错误所述,方法 GetComponent<T> 不带任何参数。它只是 returns 对类型 T 实例的引用(在您的情况下,T 代表 Rigidbody2D)。而且您还尝试将赋值作为参数传递给所述函数,这也不起作用,您只能传递值或引用。

你应该在视频中那个人这样做的地方发布时间戳,但我在第一次点击时发现了它:D

所以,他写的内容转化为

GetComponent<Rigidbody2D>().transform.position += Vector3.up * speed * Time.deltaTime;

Unity5.