© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•3y ago•
27 replies
Tycho

❔ Trying to shorten this code.

The code works well, but it's a bit dual coded so I've been trying to shorten it. I can't find a good fix, though.

void EnemyRaycastCheck() {
        streakScriptReference.HandleStreakBar();
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Input.GetMouseButtonDown(0)) {
            if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, enemyLayerMask2D)) {
                adrenaline++;
                adrenalineScriptReference.SetAdrenaline(adrenaline);
                adrenalineScriptReference.ImproveAdrenalineBar();
                hitEnemy2D = hit.transform.GetComponent<Enemy2D>();
                hitEnemy2D.ReduceHealth();
                if (hitEnemy2D.GetHealth() == 0) {
                    Destroy(hitEnemy2D.gameObject);
                }
                streakScriptReference.ScorePlus();
            } else if (Physics.Raycast(ray, out hit, Mathf.Infinity, enemyLayerMask3D)) {
                adrenalineScriptReference.DeclineAdrenalineBar();
                streakScriptReference.ResetStreak();
            }
        }
        if (Input.GetMouseButtonDown(1)) {
            if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, enemyLayerMask3D)) {
                adrenaline++;
                adrenalineScriptReference.SetAdrenaline(adrenaline);
                adrenalineScriptReference.ImproveAdrenalineBar();

                hitEnemy3D = hit.transform.GetComponent<Enemy3D>();
                hitEnemy3D.ReduceHealth();
                if (hitEnemy3D.GetHealth() == 0) {
                    Destroy(hitEnemy3D.gameObject);
                }
                streakScriptReference.ScorePlus();
            } else if (Physics.Raycast(ray, out hit, Mathf.Infinity, enemyLayerMask2D)) {
                adrenalineScriptReference.DeclineAdrenalineBar();
            }
        }
    }
void EnemyRaycastCheck() {
        streakScriptReference.HandleStreakBar();
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Input.GetMouseButtonDown(0)) {
            if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, enemyLayerMask2D)) {
                adrenaline++;
                adrenalineScriptReference.SetAdrenaline(adrenaline);
                adrenalineScriptReference.ImproveAdrenalineBar();
                hitEnemy2D = hit.transform.GetComponent<Enemy2D>();
                hitEnemy2D.ReduceHealth();
                if (hitEnemy2D.GetHealth() == 0) {
                    Destroy(hitEnemy2D.gameObject);
                }
                streakScriptReference.ScorePlus();
            } else if (Physics.Raycast(ray, out hit, Mathf.Infinity, enemyLayerMask3D)) {
                adrenalineScriptReference.DeclineAdrenalineBar();
                streakScriptReference.ResetStreak();
            }
        }
        if (Input.GetMouseButtonDown(1)) {
            if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, enemyLayerMask3D)) {
                adrenaline++;
                adrenalineScriptReference.SetAdrenaline(adrenaline);
                adrenalineScriptReference.ImproveAdrenalineBar();

                hitEnemy3D = hit.transform.GetComponent<Enemy3D>();
                hitEnemy3D.ReduceHealth();
                if (hitEnemy3D.GetHealth() == 0) {
                    Destroy(hitEnemy3D.gameObject);
                }
                streakScriptReference.ScorePlus();
            } else if (Physics.Raycast(ray, out hit, Mathf.Infinity, enemyLayerMask2D)) {
                adrenalineScriptReference.DeclineAdrenalineBar();
            }
        }
    }
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources
Was this page helpful?

Similar Threads

Recent Announcements

Similar Threads

✅ Shorten Property code
C#CC# / help
2y ago
❔ How to shorten switch statement
C#CC# / help
3y ago
✅ How to write special linq group by? How to shorten my code?
C#CC# / help
3y ago
Trying to understand this abstract code (and use it elsewhere)
C#CC# / help
2y ago