Example #1
0
    public static void Display(string qName, Quaternion q, Vector3 anchorPos, Color color, float vectorSizeMultiplier, bool displayAngle)
    {
        if (!instance)
        {
            Debug.LogError("No QuaternionDisplayService in the scene!");
            return;
        }

        if (dicoQuatDisplay == null)
        {
            dicoQuatDisplay = new Dictionary <string, LogicalQuaternionDisplay>();
        }

        LogicalQuaternionDisplay qDisplay;

        if (!dicoQuatDisplay.TryGetValue(qName, out qDisplay))
        {
            VectorDisplay vectorDisplay = Instantiate(instance.m_VectorDisplayPrefab);
            vectorDisplay.name = qName + "_VECTOR_DISPLAY";
            vectorDisplay.transform.SetParent(instance ? instance.transform : null);
            qDisplay = new LogicalQuaternionDisplay(qName, vectorDisplay);
            dicoQuatDisplay.Add(qName, qDisplay);
        }

        qDisplay.DisplayVector(q, anchorPos, color, vectorSizeMultiplier, displayAngle);
    }
Example #2
0
    void OnGUI()
    {
        if (dicoQuatDisplay == null || dicoQuatDisplay.Count == 0)
        {
            return;
        }

        foreach (var item in dicoQuatDisplay)
        {
            LogicalQuaternionDisplay qDisplay = item.Value;
            qDisplay.DisplayUI();
        }
    }
Example #3
0
    void Update()
    {
        if (dicoQuatDisplay != null && dicoQuatDisplay.Count > 0)
        {
            List <LogicalQuaternionDisplay> toBeRemoved = new List <LogicalQuaternionDisplay>();

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

            for (int i = 0; i < toBeRemoved.Count; i++)
            {
                LogicalQuaternionDisplay qDisplay = toBeRemoved[i];
                Destroy(qDisplay.gameObject);
                dicoQuatDisplay.Remove(qDisplay.name);
            }
        }
    }