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