首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有“方法的过载”“正常化”接受一个参数错误代码: CS1501

没有“方法的过载”“正常化”接受一个参数错误代码: CS1501
EN

Stack Overflow用户
提问于 2020-05-17 16:02:08
回答 1查看 524关注 0票数 1

我目前正致力于在2D中创建Billiards的克隆;一般来说,我对编码相当陌生,但是我已经使用了几次规范化方法,而且从未遇到过这个问题。我已经删除了“使用System.Numerics”,因为它导致了‘Vector2 2’的问题。

变量"shootDistance“是一个没有赋值的浮点数。

代码语言:javascript
复制
  Vector2 dimxy = mousePointA.transform.position - transform.position;
    float difference = dimxy.magnitude;

    mousePointB.transform.position = (Vector2)transform.position + ((dimxy / difference) * currDistance * -1);
    mousePointB.transform.position = new UnityEngine.Vector2(mousePointB.transform.position.x, mousePointB.transform.position.y);

    shootDirection = Vector2.Normalize(mousePointA.transform.position - transform.position);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-17 16:17:20

规范化采用Vector3或Vector2,但返回Vector3,因此您将返回值转换为Vector2,您必须编写:(positionB和positionA是Vector3或Vector2)

代码语言:javascript
复制
shootDirection = (Vector2)Vector3.Normalize(positionB - positionA);

将Vector2转换为Vector3是在z=0中隐含的

但是Vector3 to Vector2并不是隐式的,所以它是您必须指定强制转换的原因,在本例中,您需要释放z值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61854778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档