Beispiel #1
0
    public static void Display(string vName, Vector3 vector, Vector3 anchorPos, Color color, float vectorSizeMultiplier)
    {
        if (!instance)
        {
            Debug.LogError("No VectorDisplayService in the scene!");
            return;
        }

        if (dicoVectorDisplay == null)
        {
            dicoVectorDisplay = new Dictionary <string, LogicalVectorDisplay>();
        }

        LogicalVectorDisplay logVectorDisplay;

        if (!dicoVectorDisplay.TryGetValue(vName, out logVectorDisplay))
        {
            VectorDisplay vectorDisplay = Instantiate(instance.m_VectorDisplayPrefab);
            vectorDisplay.name = vName + "_VECTOR_DISPLAY";
            vectorDisplay.transform.SetParent(instance ? instance.transform : null);
            logVectorDisplay = new LogicalVectorDisplay(vName, vectorDisplay);
            dicoVectorDisplay.Add(vName, logVectorDisplay);
        }

        logVectorDisplay.Display(vector, anchorPos, color, vectorSizeMultiplier);
    }
Beispiel #2
0
    void Update()
    {
        if (dicoVectorDisplay != null && dicoVectorDisplay.Count > 0)
        {
            List <LogicalVectorDisplay> toBeRemoved = new List <LogicalVectorDisplay>();

            foreach (var item in dicoVectorDisplay.Values)
            {
                if (Time.frameCount - item.latestDisplayFrame > 1)
                {
                    toBeRemoved.Add(item);
                }
            }

            for (int i = 0; i < toBeRemoved.Count; i++)
            {
                LogicalVectorDisplay vDisplay = toBeRemoved[i];
                Destroy(vDisplay.gameObject);
                dicoVectorDisplay.Remove(vDisplay.name);
            }
        }
    }