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.
我对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.