// Update is called once per frame void Update() { if (plr_main == null) { Destroy(gameObject); return; } if (plr_main.isJumping()) { Destroy(gameObject); } plr_main.MPregenReset(); //ignore projectiles int mask = 1 << LayerMask.NameToLayer("Projectile"); mask = ~mask; Physics.Raycast(new Ray(plr_main.transform.position, plr_main.UpperTorsoDir), out hitInfo, lenght, mask); line_rend.SetPosition(0, plr_main.transform.position + new Vector3(0f, 0.5f, 0f)); transform.position = plr_main.transform.position + new Vector3(0f, 0.5f, 0f); if (hitInfo.collider != null && hitInfo.collider.gameObject.tag != "Gib") { line_rend.SetPosition(1, hitInfo.point); if (hitInfo.collider.gameObject.tag == "Player") { var player = hitInfo.collider.gameObject.GetComponent <PlayerMain>(); player.HP -= Time.deltaTime * pro_main.mod_stats.Power; onHit = gameObject.AddComponent <AudioSource> (); onHit.clip = sfx.onCollision; onHit.loop = true; if (!onHit.isPlaying) { onHit.Play(); } } } else { line_rend.SetPosition(1, plr_main.transform.position + (plr_main.UpperTorsoDir.normalized * lenght)); } }