Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        if (busy)
        {
            currentTime += Time.deltaTime;
            if (currentTime > trailUpdateTime)
            {
                currentTime = 0;
                AddPointToTrail(transform.position);
            }
        }

        if (Input.GetKeyUp(KeyCode.Space))
        {
            busy = false;
        }

        if (Input.GetKeyDown(KeyCode.Space))
        {
            Vector3[] emptyVector  = { };
            Vector2[] emptyVector2 = { transform.position, transform.position };
            trail.SetPositions(emptyVector);
            trail.positionCount = 1;
            trailCollider.Reset();
            trailCollider.points     = emptyVector2;
            trailCollider.isTrigger  = true;
            trailCollider.edgeRadius = 0.4f;
            trail.SetPosition(0, transform.position);
            trail.SetPosition(1, transform.position);
            busy = true;
        }
    }
        private void GenerateEdgeColliders(List <List <Vector2> > edgeColliderPoints)
        {
            GameObject edgeColliderContainer = GameObject.Find("EdgeColliders");

            if (edgeColliderContainer != null)
            {
                DestroyImmediate(edgeColliderContainer);
            }

            GameObject edgeColliderContainerGO = new GameObject("EdgeColliders");

            edgeColliderContainerGO.transform.SetParent(transform);

            for (int i = 0; i < edgeColliderPoints.Count; i++)
            {
                List <Vector2> edgePoints     = edgeColliderPoints [i];
                GameObject     edgeColliderGO = Instantiate(edgeColliderPrefab, Vector3.zero, Quaternion.Euler(new Vector3(0, 0, 0)));
                EdgeCollider2D edgeCollider   = edgeColliderGO.GetComponent <EdgeCollider2D> ();

                edgeCollider.Reset();
                edgeCollider.points = edgePoints.ToArray();

                edgeColliderGO.transform.SetParent(edgeColliderContainerGO.transform);
                edgeColliderGO.transform.localPosition = Vector3.zero;
            }
        }
Esempio n. 3
0
    static int Reset(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 1);
        EdgeCollider2D obj = LuaScriptMgr.GetNetObject <EdgeCollider2D>(L, 1);

        obj.Reset();
        return(0);
    }
Esempio n. 4
0
 public void clearLine()
 {
     if (points == null)
     {
         return;
     }
     lineRenderer.positionCount = 0;
     points.Clear();
     edgeCollider.Reset();
 }
Esempio n. 5
0
 protected virtual void Reset()
 {
     if (m_LineRenderer != null)
     {
         m_LineRenderer.positionCount = 0;
     }
     if (m_EdgeCollider2D != null)
     {
         m_EdgeCollider2D.Reset();
         m_EdgeCollider2D.transform.SetPositionAndRotation(new Vector3(0, 0), new Quaternion(0, 0, 0, 0));
     }
 }
Esempio n. 6
0
    /// <summary>
    /// Initialize the line and collider used as a trail
    /// </summary>
    private void CreateLine()
    {
        currentLine               = new GameObject("Line").AddComponent <LineRenderer>();
        currentLine.material      = new Material(Shader.Find("Sprites/Default"));
        currentLine.positionCount = 0;
        currentLine.startWidth    = 0.2f;
        currentLine.endWidth      = 0.4f;
        currentLine.startColor    = Color.red;
        currentLine.endColor      = Color.blue;
        currentLine.useWorldSpace = false;

        mCollider = currentLine.gameObject.AddComponent <EdgeCollider2D>();
        mCollider.Reset();
    }
Esempio n. 7
0
 void CreateMap()
 {
     line.SetVertexCount(pointArray.Length + 1);
     colliderEdge.Reset();
     Vector2[] points = new Vector2[pointArray.Length + 1];
     for (int i = 0; i < pointArray.Length; i++)
     {
         line.SetPosition(i, pointArray[i].position);
         points[i] = new Vector2(pointArray[i].localPosition.x, pointArray[i].localPosition.y);
     }
     line.SetPosition(pointArray.Length, pointArray [0].position);
     points[pointArray.Length] = new Vector2(pointArray[0].localPosition.x, pointArray[0].localPosition.y);
     colliderEdge.points       = points;
 }
 protected virtual void Reset()
 {
     if (m_LineRenderer != null)
     {
         m_LineRenderer.positionCount = 0;
     }
     if (m_Points != null)
     {
         m_Points.Clear();
     }
     if (m_EdgeCollider2D != null && m_AddCollider)
     {
         m_EdgeCollider2D.Reset();
     }
 }
Esempio n. 9
0
    public void test()
    {
        Vector3 mousePosition = m_Camera.ScreenToWorldPoint(Input.mousePosition);

        mousePosition.z = m_LineRenderer.transform.position.z;
        if (!m_Points.Contains(mousePosition))
        {
            mousePosition = new Vector3(mousePosition.x, mousePosition.y, 0.0f);
            m_Points.Add(mousePosition);
            list.Add(new Vector2(mousePosition.x, mousePosition.y));
            m_LineRenderer.positionCount = m_Points.Count;
            m_LineRenderer.SetPosition(m_LineRenderer.positionCount - 1, mousePosition);
            collider.Reset();
            collider.points = list.ToArray();
        }
    }
Esempio n. 10
0
 private void Reset()
 {
     if (lineRenderer != null)
     {
         lineRenderer.positionCount = 0;
         lineRenderer.SetColors(Color.white, Color.white);
     }
     if (points != null)
     {
         points.Clear();
     }
     if (edgeCollider2D != null)
     {
         edgeCollider2D.Reset();
         edgeCollider2D.enabled = false;
     }
 }
    public static int Reset(IntPtr l)
    {
        int result;

        try
        {
            EdgeCollider2D edgeCollider2D = (EdgeCollider2D)LuaObject.checkSelf(l);
            edgeCollider2D.Reset();
            LuaObject.pushValue(l, true);
            result = 1;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
Esempio n. 12
0
    protected virtual void Reset()
    {
        //Debug.Log("m_LineRenderer " + m_LineRenderer);
        //Debug.Log("m_Points " + m_Points);
        //Debug.Log("m_EdgeCollider2D1 " + m_EdgeCollider2D.points[0]);
        //Debug.Log("m_EdgeCollider2D2 " + m_EdgeCollider2D.points[1]);

        if (m_LineRenderer != null)
        {
            m_LineRenderer.positionCount = 0;
        }
        if (m_Points != null)
        {
            m_Points.Clear();
        }
        if (m_EdgeCollider2D != null && m_AddCollider)
        {
            m_EdgeCollider2D.Reset();
        }
    }
Esempio n. 13
0
 /// <summary>
 /// 开始画东西前初始化准备
 /// </summary>
 public override void startAction()
 {
     if (!initOver)
     {
         Debug.LogError("描绘需要的道具还没有初始化完成");
     }
     Debug.Log("Canvas_startAction");
     mousePos_List.Clear();
     lastPos = null;
     for (int i = 0; i < colorBuff.Length; i++)
     {
         colorBuff[i] = new Color(0, 0, 0, 0);
     }
     r2d.simulated             = false;
     sprite.transform.position = Vector3.zero;
     sprite.transform.rotation = Quaternion.Euler(Vector3.zero);
     r2d.velocity            = Vector2.zero;
     sprite.transform.parent = null;
     colliderLine.Reset();
 }
Esempio n. 14
0
    protected virtual void Reset()
    {
        if (m_LineRenderer != null)
        {
            m_LineRenderer.positionCount = 0;
        }
        if (m_Points != null)
        {
            m_Points.Clear();
        }
        if (m_EdgeCollider2D != null && m_AddCollider)
        {
            m_EdgeCollider2D.Reset();
        }

        Vector2[] puntos;
        puntos    = new Vector2[2];
        puntos[0] = new Vector2(0, 0);
        puntos[1] = new Vector2(0, 0);
        m_EdgeCollider2D.points = puntos;
    }
Esempio n. 15
0
 void ResetLines(List <Vector2> p, LineRenderer lr, EdgeCollider2D ec, float wallPos)
 {
     if (p != null)
     {
         p.Clear();
         p.Add(new Vector2(Mathf.Sign(wallPos) * 200, 0));
         p.Add(new Vector2(Mathf.Sign(wallPos) * 200, -800));
     }
     if (lr.numPositions > 1)
     {
         lr.numPositions = 2;
         lr.SetPosition(0, p[0]);
         lr.SetPosition(1, p[1]);
     }
     if (ec.pointCount > 2)
     {
         //ec.points = new Vector2[1];
         //ec.points[0].Set(0, 0);
         ec.Reset();
     }
 }
    public void GenerateTerrain()
    {
        vertices.Clear();
        triangles.Clear();
        borderPoints.Clear();
        textureCoords.Clear();

        // Get a reference to the mesh component and clear it
        MeshFilter filter = GetComponent <MeshFilter> ();

        mesh = filter.mesh;

        mesh.Clear();

        points = terrainGenerator.GenerateKeyPoints();
        CreateCurve();

        CreateTrees();
        CreateRocks();

        //Set the points for the edge collider
        EdgeCollider2D edgeCollider = GetComponent <EdgeCollider2D> ();

        edgeCollider.Reset();
        edgeCollider.points = borderPoints.ToArray();

        endPoint = borderPoints [borderPoints.Count - 1];

        // Assign the vertices and triangles to the mesh
        mesh.vertices  = vertices.ToArray();
        mesh.uv        = textureCoords.ToArray();
        mesh.triangles = triangles.ToArray();

        mesh.RecalculateBounds();
        mesh.RecalculateNormals();
    }
Esempio n. 17
0
    // Update is called once per frame

    void Start()
    {
        edgeColl.Reset();
    }
Esempio n. 18
0
 public void Reset()
 {
     line.positionCount = 0;
     edgeCollider.Reset();
     listPointsEdgeCollider.Clear();
 }
Esempio n. 19
0
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            mousePos_List.Clear();
            isbutoon = true;
            for (int i = 0; i < Screen.width * Screen.height; i++)
            {
                colorBuff[i] = new Color(0, 0, 0, 0);
            }
            lastPos                   = null;
            rig.simulated             = false;
            sprite.transform.position = Vector3.zero;
            sprite.transform.rotation = Quaternion.Euler(Vector3.zero);
            rig.velocity              = Vector2.zero;
            sprite.transform.parent   = null;
            colliderLine.Reset();
        }
        else if (Input.GetMouseButtonUp(0))
        {
            isbutoon = false;
            Vector2[] aa      = new Vector2[mousePos_List.Count];
            float[]   aaCount = new float[2] {
                0, 0
            };
            for (int i = 0; i < mousePos_List.Count; i++)
            {
                aa[i]       = Camera.main.ScreenToWorldPoint(mousePos_List[i]) / spriteScale;
                aaCount[0] += aa[i].x;
                aaCount[1] += aa[i].y;
            }
            Vector2 tt2 = new Vector2(aaCount[0] / aa.Length, aaCount[1] / aa.Length);
            rig.centerOfMass        = tt2;
            colliderLine.points     = aa;
            rig.simulated           = true;
            sprite.transform.parent = map;
        }
        if (isbutoon)
        {
            Vector3 newPos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0);
            if (newPos.x - outLine < 0 || newPos.x + outLine > Screen.width || newPos.y - outLine < 0 || newPos.y + outLine > Screen.height)
            {
                return;
            }

            if (lastPos != null)
            {
                Vector3 a    = newPos - (Vector3)lastPos;
                float   disD = Vector3.SqrMagnitude(a);
                Vector3 zhud = (Vector3)lastPos + a.normalized;
                while (Vector3.SqrMagnitude((zhud - (Vector3)lastPos)) < disD)
                {
                    for (int i = -outLine; i < outLine; i++)
                    {
                        for (int j = -outLine; j < outLine; j++)
                        {
                            try {
                                colorBuff[sw * ((int)zhud.y + i) + ((int)zhud.x + j)] = Color.black;
                            } catch {
                                Debug.LogError(zhud.x + " " + zhud.y);
                            }
                        }
                    }
                    zhud = zhud + a.normalized;
                }
                lastPos = newPos;
                mousePos_List.Add(newPos);
            }
            else
            {
                for (int i = -2; i < 2; i++)
                {
                    for (int j = -2; j < 2; j++)
                    {
                        colorBuff[sw * ((int)newPos.y + i) + ((int)newPos.x + j)] = Color.black;
                    }
                }
                mousePos_List.Add(newPos);
                lastPos = newPos;
            }
            td.SetPixels(colorBuff);
            td.Apply(true);
            Sprite spriteA = Sprite.Create(td, new Rect(0, 0, Screen.width, Screen.height), new Vector2(0.5f, 0.5f));
            sprite.sprite = spriteA;
        }
    }