예제 #1
0
        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;
                }
            }
        }
예제 #2
0
 public void HitLine(RayLine line, Vector3 pos)
 {
     Length = (pos - collider.transform.position).magnitude;
     line.GetDamageFromBullet(this, true);
 }