C# 统一重新编译序列化脚本

C# 统一重新编译序列化脚本,c#,unity3d,serialization,C#,Unity3d,Serialization,我对Unity还比较陌生,尝试从一个简单的场景开始,这个场景只包含一个FPS控制器和一些障碍物。 作为控制器,我使用的是Unity Standard Assets的控制器,一切正常。 在添加角色网格时,我注意到我必须设置相机夹持。控制器脚本访问序列化的“MouseLook”脚本,在该脚本中,我必须编辑一些变量以满足我的需要。 由于它是序列化的,但是我不能简单地更改变量,保存代码并获得更改。 因为我不打算改变脚本被序列化的事实,所以我只想更新我更改的变量 我希望这是可以理解的。提前谢谢 大家好,欢

我对Unity还比较陌生,尝试从一个简单的场景开始,这个场景只包含一个FPS控制器和一些障碍物。 作为控制器,我使用的是Unity Standard Assets的控制器,一切正常。 在添加角色网格时,我注意到我必须设置相机夹持。控制器脚本访问序列化的“MouseLook”脚本,在该脚本中,我必须编辑一些变量以满足我的需要。 由于它是序列化的,但是我不能简单地更改变量,保存代码并获得更改。 因为我不打算改变脚本被序列化的事实,所以我只想更新我更改的变量


我希望这是可以理解的。提前谢谢

大家好,欢迎@Corneey

对于初学者,我不知道如何重新编译该脚本或更改任何值(除了它可能有一些输入字段?),但有一个解决方法:

public class LookAtMouse : MonoBehaviour
{
    //The object to rotate with/look at the mouse
    public Transform target;

    //Update is called once per frame
    public void Update()
    {
        //Get mouse position in 3D space
        Plane target = new Plane(Vector3.up, 0);
        Ray r = Camera.mainCamera.ScreenPointToRay(Input.mousePosition);
        //On the hit, rotate the target to the "impact point"
        if(target.Raycast(r, out float distance)
            Vector3 hitPoint = r.GetPoint(distance);
    }
}

尝试在inspector中而不是在代码中更改值。