Exemple #1
0
    public static void CreateLine(int index)
    {
        GameObject gLine  = new GameObject("line" + (index - 1).ToString());
        GameObject gLines = GameObject.Find("PlatformLines");

        if (gLines != null)
        {
            gLine.transform.SetParent(gLines.transform);
        }
        LineRenderer line = gLine.AddComponent <LineRenderer>();

        line.sharedMaterial = mov.lineMaterial;
        Vector3 pos1 = mov.PlatformPositions[index - 1], pos2 = mov.PlatformPositions[index];

        pos1.z = mov.transform.position.z;
        pos2.z = mov.transform.position.z;
        line.SetPositions(new Vector3[] { pos1, pos2 });
        line.SetWidth(mov.LineWidth, mov.LineWidth);
        AutoLineRender rLine = gLine.AddComponent <AutoLineRender>();

        rLine.SetPoints(mov.LineRatio, pos1, pos2);
        rLine.AutoTile();
        lines.Add(line);
        mov.Lines.Add(line);
    }
    public override void OnInspectorGUI()
    {
        textureStyle                      = new GUIStyle(GUI.skin.button);
        textureStyle.margin               = new RectOffset(2, 2, 2, 2);
        textureStyle.normal.background    = null;
        textureStyleAct                   = new GUIStyle(textureStyle);
        textureStyleAct.margin            = new RectOffset(0, 0, 0, 0);
        textureStyleAct.normal.background = textureStyle.active.background;

        base.OnInspectorGUI();

        MovingPlatform mov = (MovingPlatform)target;

        lines = mov.Lines;
        if (lines == null)
        {
            mov.Lines = new List <LineRenderer>();
        }
        if (GUILayout.Button("DeleteLines"))
        {
            mov.Lines = new List <LineRenderer>();
            foreach (LineRenderer line in lines)
            {
                DestroyImmediate(line.gameObject);
            }
        }
        if (GUILayout.Button("CreateLines"))
        {
            foreach (LineRenderer line in lines)
            {
                DestroyImmediate(line.gameObject);
            }
            lines.Clear();
            for (int i = 1; i < mov.PlatformPositions.Count; i++)
            {
                GameObject gLine  = new GameObject("line" + (i - 1).ToString());
                GameObject gLines = GameObject.Find("PlatformLines");
                if (gLines != null)
                {
                    gLine.transform.SetParent(gLines.transform);
                }
                LineRenderer line = gLine.AddComponent <LineRenderer>();
                line.sharedMaterial = mov.lineMaterial;
                Vector3 pos1 = mov.PlatformPositions[i - 1], pos2 = mov.PlatformPositions[i];
                pos1.z = mov.transform.position.z;
                pos2.z = mov.transform.position.z;
                line.SetPositions(new Vector3[] { pos1, pos2 });
                line.SetWidth(mov.LineWidth, mov.LineWidth);
                AutoLineRender rLine = gLine.AddComponent <AutoLineRender>();
                rLine.SetPoints(mov.LineRatio, pos1, pos2);
                rLine.AutoTile();
                lines.Add(line);
            }
            mov.Lines = lines;
        }

        if (drawMod)
        {
            if (GUILayout.Button("", textureStyleAct, GUILayout.Width(drawIcon.textureRect.width + 6), GUILayout.Height(drawIcon.textureRect.height + 4)))
            {
                drawMod = false;
            }
            GUI.DrawTextureWithTexCoords(new Rect(GUILayoutUtility.GetLastRect().x + 3f,
                                                  GUILayoutUtility.GetLastRect().y + 2f,
                                                  GUILayoutUtility.GetLastRect().width - 6f,
                                                  GUILayoutUtility.GetLastRect().height - 4f),
                                         drawIcon.texture,
                                         new Rect(drawIcon.textureRect.x / (float)drawIcon.texture.width,
                                                  drawIcon.textureRect.y / (float)drawIcon.texture.height,
                                                  drawIcon.textureRect.width / (float)drawIcon.texture.width,
                                                  drawIcon.textureRect.height / (float)drawIcon.texture.height));
        }
        else
        {
            if (GUILayout.Button("", textureStyle, GUILayout.Width(drawIcon.textureRect.width + 2), GUILayout.Height(drawIcon.textureRect.height + 2)))
            {
                drawMod = true;
            }
            GUI.DrawTextureWithTexCoords(GUILayoutUtility.GetLastRect(), drawIcon.texture,
                                         new Rect(drawIcon.textureRect.x / (float)drawIcon.texture.width,
                                                  drawIcon.textureRect.y / (float)drawIcon.texture.height,
                                                  drawIcon.textureRect.width / (float)drawIcon.texture.width,
                                                  drawIcon.textureRect.height / (float)drawIcon.texture.height));
        }
    }