private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.name == "Hero") { LoadController load = GameObject.Find("SavaPoint").GetComponent <LoadController> (); load.Reload(collision.gameObject); } }
// Update is called once per frame void Update() { Vector3 vec = Vector3.right * transform.localScale.x; //int offset = 0; for (int i = 0; i < m_shootingSide.Length; i++) { for (int j = 0; j < m_halfSideBulletNumber; j++) { Vector3 angle = Quaternion.AngleAxis(m_shootingSide [i] * (j + 1) * m_angleInterval, Vector3.forward) * vec; Vector3 end = transform.position + angle * m_rayLength; Debug.DrawLine(transform.position, end, Color.red); hit = Physics2D.Raycast(transform.position, angle, m_rayLength, m_layer); if (hit.collider != null) { //m_vertices [i * m_halfSideBulletNumber + j + offset] = new Vector2 (hit.point.x - transform.position.x, hit.point.y - transform.position.y); if (hit.collider.name == "Hero") { LoadController load = GameObject.Find("SavaPoint").GetComponent <LoadController> (); load.Reload(hit.collider.gameObject); } } else { //m_vertices [i * m_halfSideBulletNumber + j + offset] = angle * m_rayLength; } //input //求法线向量与物体上方向向量点乘,结果为1或-1,修正旋转方向 //float aAngle = Vector3.Angle (Vector3.right, angle) * Mathf.Sign (Vector3.Dot (angle, Vector3.up)); //aSimpleBullet.transform.Rotate (Vector3.forward, aAngle); //aSimpleBullet.m_isPlayerFire = m_isPlayerFire; //aSimpleBullet.InitBullet (angle, m_bulletSpeed, m_bulletAttack, m_bulletDuration, m_bulletRepelDistance); } //offset += 1; } Debug.DrawLine(transform.position, (transform.position + vec * m_rayLength), Color.red); hit = Physics2D.Raycast(transform.position, vec * m_rayLength, m_rayLength, m_layer); if (hit.collider != null) { //m_vertices [m_halfSideBulletNumber -2] = new Vector2 (hit.point.x - transform.position.x, hit.point.y - transform.position.y); if (hit.collider.name == "Hero") { LoadController load = GameObject.Find("SavaPoint").GetComponent <LoadController> (); load.Reload(hit.collider.gameObject); } } else { //m_vertices [(i + 1) * m_halfSideBulletNumber] = vec * m_rayLength; } //m_vertices [m_vertices.Length - 1] = Vector3.zero; //Vector2 temp = m_vertices [1]; //m_vertices [1] = m_vertices [0]; //m_vertices [0] = temp; //Vector3 [] vertices3D = System.Array.ConvertAll<Vector2, Vector3> (m_vertices, v => v); //// Use the triangulator to get indices for creating triangles //Triangulator triangulator = new Triangulator (m_vertices); //int [] indices = triangulator.Triangulate (); //Color [] colors = new Color [vertices3D.Length]; //for (int i = 0; i < colors.Length; i++) { // colors [i] = Color.red; // colors [i].a = 0.5f; //} //// Create the mesh //var mesh = new Mesh { // vertices = vertices3D, // triangles = indices, // colors = colors //}; //mesh.RecalculateNormals (); //mesh.RecalculateBounds (); //filter.mesh = mesh; }