The expression being assigned to optional parameter `v2' must be a constant or default value
今天写代码的时候遇到一个问题以前没有遇到过的问题,就是当我给一个对象参数赋值默认值的时候,报错了,代码如下
public void ShowOrHiddenKuang(bool isShow,Vector2 v2=Vector2.zero){ kuang.gameObject.SetActive(isShow); kuang.transform.localPosition = v2; }
找了相关资料发现应该这么写
public void ShowOrHiddenKuang(bool isShow,Vector2 v2=default(Vector2)){ kuang.gameObject.SetActive(isShow); kuang.transform.localPosition = v2; }
原因是c#的默认参数必须是一个常量,而实例化一个新的是不可以的。
纵千难万险,亦不忘初心