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
相关产品推荐
相关产品推荐

