45 lines
1.2 KiB
C#
45 lines
1.2 KiB
C#
using System;
|
|
using UnityEngine;
|
|
|
|
namespace NonSolid
|
|
{
|
|
public enum AreaOfEffectType
|
|
{
|
|
Circle,
|
|
Line,
|
|
Rectangle,
|
|
Polygon,
|
|
Hexagon
|
|
}
|
|
|
|
public class AreaOfEffect : MonoBehaviour
|
|
{
|
|
[SerializeField] private AreaOfEffectType _areaOfEffectType;
|
|
[SerializeField] private float _radius = 10.0f; // circle
|
|
[SerializeField] private float _length = 10.0f; // line
|
|
[SerializeField] private float _width = 1.0f; // line
|
|
[SerializeField] private Rect _rect; // rectangle
|
|
|
|
private void OnCollisionEnter(Collision other)
|
|
{
|
|
float area = 0.0f;
|
|
|
|
switch (_areaOfEffectType)
|
|
{
|
|
case AreaOfEffectType.Circle:
|
|
area = Mathf.PI * _radius * _radius;
|
|
break;
|
|
case AreaOfEffectType.Line:
|
|
break;
|
|
case AreaOfEffectType.Rectangle:
|
|
break;
|
|
case AreaOfEffectType.Polygon:
|
|
break;
|
|
case AreaOfEffectType.Hexagon:
|
|
break;
|
|
default:
|
|
throw new ArgumentOutOfRangeException();
|
|
}
|
|
}
|
|
}
|
|
} |