unity3d cs1513 c#预期的统一,检查了我的括号,我认为这是所有正确的[关闭]

jpfvwuh4  于 2023-01-31  发布在  C#
关注(0)|答案(1)|浏览(172)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
2天前关闭。
Improve this question
我是Unity的新手,我尝试为一个拖放游戏制作一个事件触发器。下面是代码,它一直告诉我errorControlDragAndDrop. cs(31,106):错误CS1513:应输入}
我用的是可视化工作室。
我已经在Visual Studio上编译了它,它没有显示任何问题。但是当我回到Unity时,它出现了。请帮助:')

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ControlDragAndDrop : MonoBehaviour
{
    public GameObject item;
    public GameObject itemDrop;

    public int jarak;

    Vector2 itemPos;

    void Start()
    {
        itemPos = item.transform.position;
    }

    void Update()
    {

    }

    public void ItemDrag()
    {
        item.transform.position = Input.mousePosition;
    }

    public void ItemEndDrag()
    {
        float distance = Vector3.Distance(item.transform.localPosition), itemDrop.transform.localPosition);

        if (distance < jarak)
        {
            item.transform.localPosition = itemDrop.transform.localPosition;
        }
        else
        {
            item.transform.localPosition = itemPos;
        }
    }
}
yws3nbqq

yws3nbqq1#

在31号线上有一个额外的)
编译器因此理解您传递给Vector3.Distance方法的参数只有item.transform.localPosition,而不是item.transform.localPositionitemDrop.transform.localPosition
因此,编译器期望当前作用域结束,这就是它告诉你期望}的原因。
为了解决这个问题,请将ItemEndDrag函数的第31行从:

float distance = Vector3.Distance(item.transform.localPosition), itemDrop.transform.localPosition);

致:

float distance = Vector3.Distance(item.transform.localPosition, itemDrop.transform.localPosition);

相关问题