public void PutPointer() { ray = rtsCamera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray: ray, hitInfo: out hitInfo, maxDistance: Mathf.Infinity, layerMask: LayerMask.GetMask("Place", "NPC", "Construct", "Floor", "UI"))) { Position = hitInfo.point; int hitLayer = hitInfo.collider.gameObject.layer; TargetType = TargetType.None; TargetEntity = null; if ((hitLayer == LayerMask.NameToLayer("Place")) || (hitLayer == LayerMask.NameToLayer("Floor"))) { TargetType = TargetType.Place; } else if (hitLayer == LayerMask.NameToLayer("NPC")) { TargetType = TargetType.NPC; TargetEntity = hitInfo.collider.gameObject.GetComponent <GameEntity>(); } else if (hitLayer == LayerMask.NameToLayer("Construct")) { Construct targetHit = hitInfo.collider.gameObject.GetComponent <Construct>(); if (targetHit.Player.Group == Group.NPC) { TargetType = TargetType.NPC; } else { TargetType = TargetType.Construct; } TargetEntity = targetHit.GetComponent <GameEntity>(); } else if (hitLayer == LayerMask.NameToLayer("UI")) { TargetType = TargetType.None; } } }