Skip to content

UnityEngine.Vector3类型, 运算符的报错信息不准确 #1187

Open
@SHthemW

Description

@SHthemW

环境

操作系统: Windows10 企业版 LTSC 21H2
Unity版本: 2021.3.9f1
xLua版本: v2.1.15

问题描述

在Lua中使用UnityEngine.Vector3类型并进行减法运算时, 如果运算符某一侧的操作数类型错误, 则报错信息会输出固定的invalid arguments to right hand of - operator, need UnityEngine.Vector3!, 而非指出实际的操作数位置.

复现路径

在部署了xLua的Unity Lua环境下执行以下代码:

local v = Vector3()
print(nil - v)

得到如下所示的报错:
Image
报错信息提示右操作数出错, 然而在这段代码中实际上是左操作数出错.

问题定位

在UnityEngineVector3Wrap中对运算符的转换似乎输出了固定的报错信息, 没有区分操作符的实际位置:
Image

手动将代码为修改如下所示, 可正确提示出错操作符的位置
Image

我只是碰巧在Vector3的-运算中遇到了这个问题, 不排除其它类型或是其它双目操作符也有类似的问题.
因为错误的报错提示, 我消耗了一些时间来分析错误的表达式. 希望能够尽快修复这个问题.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions