Crosshairs Sets Rectransform size

gurayg

New member
Hello Justin,
While looking at the Crosshairs code I noticed we're using "UnityEngineUtility.SizeSprite" and setting RectTransform size with it.
Would it be possible to do it this instead:

Add this property

C#:
[Tooltip("Set Crosshairs size based on Sprite asset size.")]
[SerializeField] protected bool m_SetSpriteSize = true;

in Awake

C#:
if (m_SetSpriteSize && (m_CenterCrosshairsImage.enabled = (m_DefaultSprite != null)) == true)
{
    UnityEngineUtility.SizeSprite(m_CenterCrosshairsImage.sprite, m_CenterRectTransform);
}


Add this method. It is very similar to what you're doing in "OnEquipItem" method

C#:
void SetCrosshairsImage(Image _crosshairsImage, Sprite _crosshairsSprite, Vector2 _position)
{
    _crosshairsImage.sprite = _crosshairsSprite;
    if (_crosshairsImage.sprite != null)
    {
        _crosshairsImage.enabled = !m_Aiming || m_EquippedCharacterItem.ShowCrosshairsOnAim;
        PositionSprite(_crosshairsImage.rectTransform, _position.x, _position.y);
        if (m_SetSpriteSize) UnityEngineUtility.SizeSprite(_crosshairsImage.sprite, _crosshairsImage.rectTransform);
    }
    else
    {
        _crosshairsImage.enabled = false;
    }
}


and change OnEquipItem to this:


C#:
private void OnEquipItem(CharacterItem characterItem, int slotID)
{
    if (!characterItem.DominantItem || m_EquippedCharacterItem == characterItem) {
        return;
    }

    m_CurrentCrosshairsSpread = m_TargetCrosshairsSpread = 0;
    m_EquippedCharacterItem = characterItem;

    if (m_CenterCrosshairsImage != null)
    {
        SetCrosshairsImage(m_CenterCrosshairsImage, m_EquippedCharacterItem.CenterCrosshairs != null ? m_EquippedCharacterItem.CenterCrosshairs : m_DefaultSprite, Vector2.zero);
    }

    if (m_LeftCrosshairsImage != null)
    {
        SetCrosshairsImage(m_LeftCrosshairsImage, m_EquippedCharacterItem.LeftCrosshairs, new Vector2(-m_EquippedCharacterItem.QuadrantOffset, 0));
    }

    if (m_TopCrosshairsImage != null)
    {
        SetCrosshairsImage(m_TopCrosshairsImage, m_EquippedCharacterItem.TopCrosshairs, new Vector2(0, m_EquippedCharacterItem.QuadrantOffset));
    }

    if (m_RightCrosshairsImage != null)
    {
        SetCrosshairsImage(m_RightCrosshairsImage, m_EquippedCharacterItem.RightCrosshairs, new Vector2(m_EquippedCharacterItem.QuadrantOffset, 0));
    }

    if (m_BottomCrosshairsImage != null)
    {
        SetCrosshairsImage(m_BottomCrosshairsImage, m_EquippedCharacterItem.BottomCrosshairs, new Vector2(0, -m_EquippedCharacterItem.QuadrantOffset));
    }

    m_EquippedItemCount++;
}



It is not a big change. It just makes setting sprite size optional with a small makeup.

Annddd... I noticed I posted this in wrong forum!
Would it possible to move it to UCC? Can I do it?
 
Thanks, this looks like a good change. I should be able to get it in the next update.
 
Back
Top