Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么Unity不更新脚本?_C#_Unity3d - Fatal编程技术网

C# 为什么Unity不更新脚本?

C# 为什么Unity不更新脚本?,c#,unity3d,C#,Unity3d,我正在使用Unity 2018.4.0f1作为有关Unity的入门课程 出于某些原因,Unity不会更新我的脚本,即使在Visual Studio上保存并正确显示在我的Unity脚本文件夹中 这是我的Unity程序的一个片段,正在正确显示 但是,每当我进入播放模式时,属性都会重置为我在预更新脚本中的值 我的程序非常简单,因此我确信这不是软件问题。我在这里也发现了类似的问题: 以及这里: 所有这些都没有一个结论性的答案,我也没有能够解决这个问题 我的完整计划如下: using System

我正在使用Unity 2018.4.0f1作为有关Unity的入门课程

出于某些原因,Unity不会更新我的脚本,即使在Visual Studio上保存并正确显示在我的Unity脚本文件夹中

这是我的Unity程序的一个片段,正在正确显示

但是,每当我进入播放模式时,属性都会重置为我在预更新脚本中的值

我的程序非常简单,因此我确信这不是软件问题。我在这里也发现了类似的问题:

以及这里:

所有这些都没有一个结论性的答案,我也没有能够解决这个问题

我的完整计划如下:

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ă啊,是的,我已经设法修复了它。非常感谢。