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#的默认参数必须是一个常量,而实例化一个新的是不可以的。

posted @ 2016-11-17 15:52  血之君殇  阅读(1059)  评论(0编辑  收藏  举报