public void CheckLineIntersection() { RayLine rayLine = GameManager.gamePlay.rayLine; //if(rayLine.currentEnergy==0)return; if (!rayLine.IsActive()) { if (hitLine != null) { bullet.ResetLength(); endPos = GameManager.gamePlay.GetIGamePlay <TheMatrix>()[0].matrixGO.transform.position; hitLine = null; } } Vector3 targetPos; if (hitObstacle) { targetPos = hitObstacle.transform.position; } else { targetPos = GameManager.gamePlay.GetIGamePlay <TheMatrix>()[0].matrixGO.transform.position; } Vector3 player1Pos = GameManager.gamePlay.playerManager.player1.transform.position; Vector3 player2Pos = GameManager.gamePlay.playerManager.player2.transform.position; Vector3 selfPos = transform.position; // Vector3 matrixPos = GameManager.gamePlay.GetIGamePlay<TheMatrix>()[0].matrixGO.transform.position; Vector3 interserctionPos; int result = GetIntersection(player1Pos, player2Pos, selfPos, targetPos, out interserctionPos); if (result == 1) { bullet.HitLine(rayLine, interserctionPos); hitLine = rayLine; endPos = interserctionPos; if (hitObstacle) { hitObstacle = null; } } if (result == -1) { if (hitLine != null) { bullet.ResetLength(); hitLine = null; } } }
public void HitLine(RayLine line, Vector3 pos) { Length = (pos - collider.transform.position).magnitude; line.GetDamageFromBullet(this, true); }