Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 错误CS7036:未给出与所需形式参数';y';属于';向量2.向量2(浮动,浮动)和#x27;_C#_Unity3d - Fatal编程技术网

C# 错误CS7036:未给出与所需形式参数';y';属于';向量2.向量2(浮动,浮动)和#x27;

C# 错误CS7036:未给出与所需形式参数';y';属于';向量2.向量2(浮动,浮动)和#x27;,c#,unity3d,C#,Unity3d,我是C#的初学者,第一次使用Unity编写代码,所以我现在不知道为什么会出现这个错误 使用系统集合; 使用System.Collections.Generic; 使用System.Collections.Specialized; 使用System.Security.Cryptography; 使用UnityEngine 公共阶级运动火箭:单一行为 { public float maxSpeed=4; 公共bool lookingRight=true; 私有刚体2d rb2d; 私人动画师; //

我是C#的初学者,第一次使用Unity编写代码,所以我现在不知道为什么会出现这个错误

使用系统集合; 使用System.Collections.Generic; 使用System.Collections.Specialized; 使用System.Security.Cryptography; 使用UnityEngine

公共阶级运动火箭:单一行为 {

public float maxSpeed=4;
公共bool lookingRight=true;
私有刚体2d rb2d;
私人动画师;
//在第一帧更新之前调用Start
void Start()
{
rb2d=GetComponent();
anim=GetComponent();
}
//每帧调用一次更新
无效更新()
{
}
void FixedUpdate()
{
float hor=Input.GetAxis(“水平”);
rb2d.velocity=新矢量2(hor*maxSpeed);
float ver=Input.GetAxis(“Vertikal”);
rb2d.velocity=新矢量2(ver*maxSpeed);
if((hor>0&&!lookingRight)| |(hor<0&&lookingRight))
翻转();
}
公共空间翻转()
{
向右看!=向右看;
Vector3 myScale=transform.localScale;
myScale.x*=-1;
transform.localScale=myScale;
myScale.y*=+1;
transform.localScale=myScale;
myScale.y*=-1;
transform.localScale=myScale;
接受两个参数
Vector2(float x,float y)
,但您只提供一个浮点值
新的Vector2(ver*maxSpeed)

我想这就是你的意图:

// your code (incorrect constructor for Vector2)
float hor = Input.GetAxis("Horizontal");
rb2d.velocity = new Vector2(hor * maxSpeed); // assign value to rb2d.velocity

float ver = Input.GetAxis("Vertikal");
rb2d.velocity = new Vector2(ver * maxSpeed); // overwrite value you just assigned
应该是

float hor = Input.GetAxis("Horizontal");
float ver = Input.GetAxis("Vertikal");

// create 2d vector and assign only once
rb2d.velocity = new Vector2(hor * maxSpeed, ver * maxSpeed);

沿对角线移动时,rb2d.velocity会更快。您可以采取一些步骤来解决此问题和可能遇到的其他问题。我建议查看这组教程。

a
Vector2
需要两个参数。您正在创建两个向量,每个向量都有一个参数。谢谢,但现在我收到此错误:仅CS0201:赋值、调用、递增、递减、等待和新对象表达式可以用作语句。您应该将其作为新问题发布,并提供更多详细信息,如代码和行number@JacobHuckins你说的
最小值是什么意思?^^它正好需要两个参数;@derHugo我想我的大脑为creat去了构造函数重载但这绝对不是unity中向量的工作方式。修复了答案。
float hor = Input.GetAxis("Horizontal");
float ver = Input.GetAxis("Vertikal");

// create 2d vector and assign only once
rb2d.velocity = new Vector2(hor * maxSpeed, ver * maxSpeed);