将Sprite Renderer宽度设置为特定距离

时间:2018-12-31 19:40:49

标签: c# unity3d

我想像这样按照给定的距离调整精灵的大小:

float range = 5;

private void OnMouseDown()
{
    // my problem is that i want to change this sprite 
    // as same distance range in the update method

    GetComponent<SpriteRenderer>().transform.localScale = range;
}

void update()
{
    if (Vector2.Distance(monster.transform.position, transform.position) < 
        range)
    {
        // do something
        // on the first position enter the range
    }
}

我想要一种将距离单位转换为图像尺寸的方法,以使图像尺寸与距离相同,例如        circle.transform.localScale=Vector2.Distance(monster.transform.position, transform.position);

精灵是一个圆形,因此在操作结束时宽度和高度应与距离匹配。

1 个答案:

答案 0 :(得分:0)

顺便说一句,您仅应在必要时使用man-in-the-middle。这是一个昂贵的操作。最好尽可能地缓存结果:

GetComponent

要回答您的问题,您可以做的是获取当前public SpriteRenderer mySpriteRenderer; ... // e.g., in Awake() mySpriteRenderer = GetComponent<SpriteRenderer>(); 在当前比例尺上的值并将其与您要匹配的距离进行比较。然后,您可以根据当前尺寸和目标尺寸之间的比率来更改本地比例以调整比例:

bounds.size.x