c# - Unity3d c# - Vector3 作为默认参数

标签 c# unity3d default

我们如何添加 Vector3 作为方法的默认参数?例如:

Void SpawnCube(Vector3 p = new Vector3(0,0,0)){...}

我刚刚尝试了关于我遇到错误的行:

Expression being assigned to optional parameter `p' must be a constant or default value

我想自定义一个函数来生成一些游戏对象,如果我没有提供transform.position,它将转到(0,0 ,0)

最佳答案

我知道这已经得到回答,但我只想添加其他方法来做到这一点。 Vector3? pVector3 bar = default(Vector3) 应该这样做。

public void SpawnCube(Vector3? p = null)
{
    if (p == null)
    {
        p = Vector3.zero; //Set your default value here (0,0,0)
    }

}

作为htmlcoderexe 指出,

要使用 p,您必须使用 p.Value 或将 p 转换回 Vector3 ((Vector3)p)

例如,要使用 p 变量、p.Value.x 从该函数访问 x 值((Vector3)p).x.


public void SpawnCube(Vector3 bar = default(Vector3))
{
    //it will make default value to be 0,0,0
}

关于c# - Unity3d c# - Vector3 作为默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30294216/

相关文章:

c# - 我可以更改 C# 中的当前堆栈跟踪吗?

C# 查看特定 .NET 类的源代码

c# - 在抽象类中使用构造函数

c# - 如何在控制台应用程序中使用 Quartz.net [显示错误]?

c# - Unity 检查数组中的二维对象是否在没有 OnCollisionEnter 的情况下发生碰撞

nhibernate - Unity3D + NHibernate,崩溃加载 "Unity 3.5 .net full Base Class Libraries"

c++ - 如何在MFC对话框应用程序中将复选框设置为默认选中?

php - 防止 PHP date() 默认为 12/31/1969

google-chrome - Chrome - Javascript 阻止默认的 Ctrl + MouseWheel 行为

c# - RestSharp 方法抛出 System.Xml.XMlException "="是意外标记。预期的 token 是 ';'