C# 为什么Unity不更新脚本?
我正在使用Unity 2018.4.0f1作为有关Unity的入门课程 出于某些原因,Unity不会更新我的脚本,即使在Visual Studio上保存并正确显示在我的Unity脚本文件夹中 这是我的Unity程序的一个片段,正在正确显示 但是,每当我进入播放模式时,属性都会重置为我在预更新脚本中的值 我的程序非常简单,因此我确信这不是软件问题。我在这里也发现了类似的问题: 以及这里: 所有这些都没有一个结论性的答案,我也没有能够解决这个问题 我的完整计划如下:C# 为什么Unity不更新脚本?,c#,unity3d,C#,Unity3d,我正在使用Unity 2018.4.0f1作为有关Unity的入门课程 出于某些原因,Unity不会更新我的脚本,即使在Visual Studio上保存并正确显示在我的Unity脚本文件夹中 这是我的Unity程序的一个片段,正在正确显示 但是,每当我进入播放模式时,属性都会重置为我在预更新脚本中的值 我的程序非常简单,因此我确信这不是软件问题。我在这里也发现了类似的问题: 以及这里: 所有这些都没有一个结论性的答案,我也没有能够解决这个问题 我的完整计划如下: using System
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float speed = 10.0f;
public float turn = 25.0f;
public float horizontalInput;
public float verticalInput;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
horizontalInput = Input.GetAxis("Horizontal");
verticalInput = Input.GetAxis("Vertical");
// We'll move the player forward
transform.Translate(Vector3.forward * Time.deltaTime * speed * verticalInput);
transform.Rotate(Vector3.up, Time.deltaTime * turn * horizontalInput);
}
}
当您拥有同样序列化的公共变量时,编辑器中的值将覆盖脚本中声明的值,您可能必须删除场景的某些元数据才能完全重置它。
只需从编辑器中更改它,或者将这些值设置为私有,那么编辑器将无法访问它们,也不会更改这些值当您拥有同样序列化的公共变量时,来自编辑器的值将覆盖脚本中声明的值,您可能必须删除场景的一些元数据才能完全重置它。
只需从编辑器中更改它,或者将这些值设置为私有,那么编辑器将无法访问它们,也不会更改这些值,这是因为您以前在inspector中修改了这些值。如果将资源序列化设置为文本模式,也可以在PlayerController.cs.meta中看到修改。您可以右键单击属性并按“重置”放弃更改,然后在脚本中更新您的值,也会在检查器中更新这些值。@EmanuelIntilă是的,我以前确实在检查器中修改过值。我怎样才能让Unity再次使用我的脚本?@EmanuelVintilă你能澄清你所说的财产是什么意思吗?你指的是速度场和转弯场吗?是的,如检查员所示。您可以右键单击他们的名字,或者干脆完全重置脚本。@EmanuelVintilă啊,是的,我已经设法修复了它。非常感谢。这是因为您以前修改了inspector中的值。如果将资源序列化设置为文本模式,也可以在PlayerController.cs.meta中看到修改。您可以右键单击属性并按“重置”放弃更改,然后在脚本中更新您的值,也会在检查器中更新这些值。@EmanuelIntilă是的,我以前确实在检查器中修改过值。我怎样才能让Unity再次使用我的脚本?@EmanuelVintilă你能澄清你所说的财产是什么意思吗?你指的是速度场和转弯场吗?是的,如检查员所示。您可以右键单击他们的名字,或者干脆完全重置脚本。@EmanuelVintilă啊,是的,我已经设法修复了它。非常感谢。