大家。 我是初学者的统一用户。 当我学习团结。我的C#脚本文件没有插入到预制件中。 并返回错误消息:脚本不继承可以管理脚本的本机类。
这是我的C#脚本代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class unPlayerMovement
{
private Transform tr;
public float moveSpeed = 30.0f;
public float rotSpeed = 150.0f;
// Start is called before the first frame update
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
tr = GetComponent<Transform>();
}
// Update is called once per frame
void Update()
{
float h = Input.GetAxis("Mouse X");
float v = Input.GetAxis("Vertical");
Move();
}
void Move(float h, float v)
{
tr.Rotate(0, v * moveSpeed * Time.deltaTime, 0);
tr.Translate(0, 0, h * rotSpeed * Time.deltaTime);
}
}
And this is my Unity screen.
答案 0 :(得分:6)
也有这个问题。检查类名是否与文件名完全相同,这为我修复了。
在您的情况下,请检查 unPlayerMovement
类位于名为 unPlayerMovement.cs
的文件中
答案 1 :(得分:0)
您需要继承MonoBehaviour。
public class unPlayerMovement:MonoBehaviour
答案 2 :(得分:0)
这是您整个脚本的外观。您的Move()也有错误[已修复]。这可能是团结不加载脚本的原因。让我知道您是否需要任何帮助:)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class unPlayerMovement : MonoBehaviour {
private Transform tr;
public float moveSpeed = 30.0f;
public float rotSpeed = 150.0f;
// Start is called before the first frame update
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
tr = GetComponent<Transform>();
}
// Update is called once per frame
void Update()
{
float h = Input.GetAxis("Mouse X");
float v = Input.GetAxis("Vertical");
Move(h,v);
}
void Move(float h, float v)
{
tr.Rotate(0, v * moveSpeed * Time.deltaTime, 0);
tr.Translate(0, 0, h * rotSpeed * Time.deltaTime);
}
}
答案 3 :(得分:0)
谢谢您的回答。 现在可以使用! 如图所示,unPlayerMovement脚本文件连接到播放器预制件
答案 4 :(得分:0)
如果你在某处有计数器错误,你可以看到这个错误。 首先,您应该清除控制台中的任何错误。