작업 조건 분석 기능 개발
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
#define Graph_And_Chart_PRO
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using UnityEngine;
|
||||
|
||||
namespace ChartAndGraph
|
||||
{
|
||||
/// <summary>
|
||||
/// base class for all chart setting items
|
||||
/// </summary>
|
||||
[RequireComponent(typeof(AnyChart))]
|
||||
[ExecuteInEditMode]
|
||||
public abstract class ChartSettingItemBase : MonoBehaviour,IInternalSettings
|
||||
{
|
||||
|
||||
private event EventHandler OnDataUpdate;
|
||||
private event EventHandler OnDataChanged;
|
||||
|
||||
protected abstract Action<IInternalUse, bool> Assign { get; }
|
||||
AnyChart mChart;
|
||||
|
||||
private AnyChart SafeChart
|
||||
{
|
||||
get
|
||||
{
|
||||
if (mChart == null)
|
||||
mChart = GetComponent<AnyChart>();
|
||||
return mChart;
|
||||
}
|
||||
}
|
||||
|
||||
protected void AddInnerItem(IInternalSettings item)
|
||||
{
|
||||
item.InternalOnDataChanged += Item_InternalOnDataChanged;
|
||||
item.InternalOnDataUpdate += Item_InternalOnDataUpdate;
|
||||
}
|
||||
|
||||
private void Item_InternalOnDataUpdate(object sender, EventArgs e)
|
||||
{
|
||||
RaiseOnUpdate();
|
||||
}
|
||||
|
||||
private void Item_InternalOnDataChanged(object sender, EventArgs e)
|
||||
{
|
||||
RaiseOnChanged();
|
||||
}
|
||||
|
||||
protected virtual void RaiseOnChanged()
|
||||
{
|
||||
if (OnDataChanged != null)
|
||||
OnDataChanged(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
protected virtual void RaiseOnUpdate()
|
||||
{
|
||||
if (OnDataUpdate != null)
|
||||
OnDataUpdate(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
private void SafeAssign(bool clear)
|
||||
{
|
||||
AnyChart chart = SafeChart;
|
||||
if (chart != null)
|
||||
Assign(chart, clear);
|
||||
}
|
||||
|
||||
protected virtual void OnEnable()
|
||||
{
|
||||
SafeAssign(false);
|
||||
}
|
||||
|
||||
protected virtual void OnDisable()
|
||||
{
|
||||
SafeAssign(true);
|
||||
}
|
||||
|
||||
protected virtual void OnDestroy()
|
||||
{
|
||||
SafeAssign(true);
|
||||
}
|
||||
|
||||
protected virtual void OnValidate()
|
||||
{
|
||||
AnyChart chart = SafeChart;
|
||||
if (chart != null)
|
||||
((IInternalUse)chart).CallOnValidate();
|
||||
}
|
||||
|
||||
protected virtual void Start()
|
||||
{
|
||||
SafeAssign(false);
|
||||
}
|
||||
|
||||
#region Intenal Use
|
||||
event EventHandler IInternalSettings.InternalOnDataUpdate
|
||||
{
|
||||
add
|
||||
{
|
||||
OnDataUpdate += value;
|
||||
}
|
||||
|
||||
remove
|
||||
{
|
||||
OnDataUpdate -= value;
|
||||
}
|
||||
}
|
||||
|
||||
event EventHandler IInternalSettings.InternalOnDataChanged
|
||||
{
|
||||
add
|
||||
{
|
||||
OnDataChanged += value;
|
||||
}
|
||||
remove
|
||||
{
|
||||
OnDataChanged -= value;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5512ec200bc64a04ca3354ddc7fbf01e
|
||||
timeCreated: 1478008298
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user