Exemple #1
0
    public void Initialize(MathSigns _eType)
    {
        switch (_eType)
        {
        case MathSigns.Add:
            m_imgSign.sprite = m_spriteAdd;
            break;

        case MathSigns.Substract:
            break;

        case MathSigns.Divide:
            break;

        case MathSigns.Multiply:
            break;

        case MathSigns.Equal:
            m_imgSign.sprite = m_spriteEquals;
            break;

        default:
            throw new ArgumentOutOfRangeException("_eType", _eType, null);
        }
    }
    public MathSign CreateMathSign(MathSigns _eType, IngameBuilding _buildingA, IngameBuilding _buildingB)
    {
        Vector3 v3PosA     = _buildingA.transform.position;
        Vector3 v3PosB     = _buildingB.transform.position;
        Vector3 v3DirAB    = v3PosB - v3PosA;
        Vector3 v3PosMidAB = v3PosA + v3DirAB * .5f;

        Vector3 v3TargetWorldPos    = v3PosMidAB;
        Vector2 v2TargetViewportPos = Camera.main.WorldToViewportPoint(v3TargetWorldPos);
        Vector2 v2CanvasSize        = GetComponent <RectTransform>().sizeDelta;
        Vector2 v2TargetGuiPos      = new Vector2(v2CanvasSize.x * v2TargetViewportPos.x, v2CanvasSize.y * v2TargetViewportPos.y);

        MathSign sign = Instantiate(p_mathSign, transform, false);

        sign.GetComponent <RectTransform>().anchoredPosition = v2TargetGuiPos;
        sign.transform.SetAsFirstSibling();
        sign.Initialize(_eType);

        return(sign);
    }