Giter Site home page Giter Site logo

overlapsugar's Introduction

OverlapSugar

Short cuts for Physics.Overlap in Unity by Night Train Code

  • Friendly Overlap Settings in inspector
  • Perform Overlap in one line of code

Navigation

Friendly Settings In Inspector

[SerializeField] private OverlapSettings _overlapSettings;

OverlapSettings Review Screenshot

Overlap In One Line Of Code

Using

using NTC.OverlapSugar;

Overlap Settings

[SerializeField] private OverlapSettings _overlapSettings;

For Single Target

_overlapSettings.TryFind(out IDamageable damageable);

For Many Targets

private readonly List<IDamageable> _detectedDamageables = new List<IDamageable>(32);

_overlapSettings.TryFind(_detectedDamageables);

or

private readonly List<IDamageable> _detectedDamageables = new List<IDamageable>(32);

_overlapSettings.TryFindInChildren(_detectedDamageables);

Examples Of Using

Example For Single Target:

    using NTC.OverlapSugar;
    using UnityEngine;

    public class UnitMeleeAttack : UnitAttack
    {
        [SerializeField] private OverlapSettings _overlapSettings;

        public void TryPerformAttack()
        {
            if (_overlapSettings.TryFind(out IDamageable damageable))
            {
                damageable.ApplyDamage(Damage);
            }
        }
    }

Example For Many Targets:

    using NTC.OverlapSugar;
    using UnityEngine;

    public class UnitMeleeAttack : UnitAttack
    {
        [SerializeField] private OverlapSettings _overlapSettings;

        private readonly List<IDamageable> _detectedDamageables = new List<IDamageable>(32);
        
        public void TryPerformAttack()
        {
            if (_overlapSettings.TryFind(_detectedDamageables))
            {
                _detectedDamageables.ForEach(ApplyDamage);
            }
        }
        
        private void ApplyDamage(IDamageable damageable)
        {
            damageable.ApplyDamage(Damage);
        }
    }

Draw Gizmos

Also you can draw gizmos of overlap zone:

    public class UnitMeleeAttack : UnitAttack
    {
        [SerializeField] private OverlapSettings _overlapSettings;

#if UNITY_EDITOR
        private void OnDrawGizmos()
        {
            _overlapSettings.TryDrawGizmos();
        }
#endif
    }

or

    public class UnitMeleeAttack : UnitAttack
    {
        [SerializeField] private OverlapSettings _overlapSettings;

#if UNITY_EDITOR
        private void OnDrawGizmosSelected()
        {
            _overlapSettings.TryDrawGizmos();
        }
#endif
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.