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); }