首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缩放精灵的位置总是一样的--统一(我做错了什么?)

缩放精灵的位置总是一样的--统一(我做错了什么?)
EN

Stack Overflow用户
提问于 2016-06-09 11:41:55
回答 1查看 72关注 0票数 0

首先,我是团结的新手,显然我做错了什么,但我不知道是什么。

请看下面的图片。有三个球。最大的一个是原来的尺寸(进口),另外两个是缩放的。

我写了一个代码,并给这些球一个直线力,向右边缘的相机。相机大小为10 (每条路5)。当它到达边缘时,它应该会反弹回左边的摄像机边缘。它可以工作,但只有原来的一个是反弹时,它的边缘(其他球也是在同一时间反弹,但他们不应该,因为他们还没有到达边缘)。

所有的球都有相同的位置,但两个球被缩放,并从“空中检查图像”中弹出)。

更改方向的代码在更新函数中。看起来是这样的:

代码语言:javascript
复制
if (rigidBody.transform.position.x > 5)
        {

            rigidBody.AddForce(new Vector2(-60,0));


        }

我很感激所有的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-09 15:10:12

我看到的问题是,您的代码只检查位置,以使球反弹。位置可能是在图像中心测量的(请看这个!),所以你必须考虑到每个球的宽度-实际上,从中心到一半的宽度。

要检查图像的位置加上半宽是否达到极限,可以使用renderer.bounds.size,如下所示:

代码语言:javascript
复制
if ((transform.position.x + renderer.bounds.size.x/2) > 5)
    {
        //change directions
        //do something else...
    }

换句话说,球的大小越小,x位置越长才能达到极限,然后让它们反弹。

然而,我强烈鼓励采取一种不同的方法来防止所有的硬编码。只要你改变你的相机大小,你将不得不重写所有的东西!我会把对撞机两边的相机限制,当你的球与他们碰撞,设置一个OnCollisionEnter函数,使他们改变方向。这与你的问题有点脱节,所以我就把它放在这里。祝好运!

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

https://stackoverflow.com/questions/37724993

复制
相关文章

相似问题

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