c# - 尝试将变量分配给 Rigidbody2D 时出错
问题描述
当我尝试将 Rigidbody2D 添加到脚本时,它不断给我错误 CS0428:“无法将方法组 'GetComponent' 转换为非委托类型 'Rigidbody2D'。你打算调用该方法吗?”。也许它是我没有看到的东西,但我经历了几次,没有发现任何问题。
using UnityEngine;
public class characterController : MonoBehaviour
{
public Rigidbody2D rb;
void Start()
{
rb = GetComponent<Rigidbody2D>;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rb.AddForce(Vector2.up * 500);
}
}
}
解决方案
我认为您需要像这样在 Rigidbody2D 之后添加括号:
using UnityEngine;
public class characterController : MonoBehaviour {
public Rigidbody2D rb;
void Start()
{
rb = GetComponent<Rigidbody2D>;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rb.AddForce(Vector2.up * 500);
}
}
}
要再次避免此问题,请尝试仔细阅读错误消息。例如,通过阅读 GetComponents 上的文档可以轻松避免此问题。
推荐阅读
- php - 如何连接到 Heroku 服务器上的 PostgreSQL 数据库并使用 Chart.js?
- google-apps-script - 使用 Google Apps 脚本 UrlFetchApp 抓取 Google 趋势
- react-native - React-Native 应用程序在 android 设备上立即崩溃,但在模拟器上运行良好
- python - PyTube for 音视频下载程序
- arrays - 我的代码不会将数据打印到文件中
- python - Python - Pandas - 一次打印 10 行,同时保持它们正确对齐
- r - 在 R 中操作“networkD3”对象
- laravel - 需要有关 laravel 8 组件问题的建议 - 无法解决的依赖关系
- python - 不和谐的机器人如果用坏话改变昵称
- java - 如何形成一个包含从 0 到 n 的数字的字符串