You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity 2D C#拖拽系统报错:public/private修饰符无效求助

问题解决方法

你的代码核心问题是类的闭合花括号位置错误,把OnMouseDown和OnMouseDrag方法写到了Draggable类的外部,这就导致方法的private修饰符不符合语法规则,同时类内的difference变量也无法被外部方法访问。

修正后的代码如下:

public class Draggable : MonoBehaviour
{
    Vector2 difference = Vector2.zero;

    private void OnMouseDown()
    {
        difference = (Vector2)Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
    }

    private void OnMouseDrag()
    {
        transform.position = (Vector2)Camera.main.ScreenToWorldPoint(Input.mousePosition) - difference;
    }
}

把原本放在类外面的两个方法移到Draggable类的花括号内部,确保所有成员(变量和方法)都属于这个类,这样修饰符和变量访问就都符合C#语法规则了。

内容的提问来源于stack exchange,提问作者Explorer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:36:32