mirror of
https://github.com/BlackMATov/unity-iso-tools.git
synced 2025-12-15 01:12:05 +07:00
IsoWorld static instance
This commit is contained in:
@@ -13,7 +13,7 @@ namespace IsoTools.Internal {
|
|||||||
Vector3 _viewCenter = Vector3.zero;
|
Vector3 _viewCenter = Vector3.zero;
|
||||||
|
|
||||||
void GrabPositions() {
|
void GrabPositions() {
|
||||||
var iso_world = GameObject.FindObjectOfType<IsoWorld>();
|
var iso_world = IsoWorld.Instance;
|
||||||
if ( iso_world ) {
|
if ( iso_world ) {
|
||||||
_positions = targets
|
_positions = targets
|
||||||
.Where(p => p is IsoObject)
|
.Where(p => p is IsoObject)
|
||||||
@@ -97,7 +97,7 @@ namespace IsoTools.Internal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ZMoveSlider() {
|
void ZMoveSlider() {
|
||||||
var iso_world = GameObject.FindObjectOfType<IsoWorld>();
|
var iso_world = IsoWorld.Instance;
|
||||||
if ( iso_world ) {
|
if ( iso_world ) {
|
||||||
Handles.color = Handles.zAxisColor;
|
Handles.color = Handles.zAxisColor;
|
||||||
var delta = Handles.Slider(_viewCenter, IsoUtils.vec3OneY) - _viewCenter;
|
var delta = Handles.Slider(_viewCenter, IsoUtils.vec3OneY) - _viewCenter;
|
||||||
@@ -109,7 +109,7 @@ namespace IsoTools.Internal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void XYMoveSlider(Color color, Vector3 dir) {
|
void XYMoveSlider(Color color, Vector3 dir) {
|
||||||
var iso_world = GameObject.FindObjectOfType<IsoWorld>();
|
var iso_world = IsoWorld.Instance;
|
||||||
if ( iso_world ) {
|
if ( iso_world ) {
|
||||||
Handles.color = color;
|
Handles.color = color;
|
||||||
var delta = Handles.Slider(_viewCenter, iso_world.IsoToScreen(dir)) - _viewCenter;
|
var delta = Handles.Slider(_viewCenter, iso_world.IsoToScreen(dir)) - _viewCenter;
|
||||||
|
|||||||
@@ -238,13 +238,11 @@ namespace IsoTools {
|
|||||||
//
|
//
|
||||||
// ---------------------------------------------------------------------
|
// ---------------------------------------------------------------------
|
||||||
|
|
||||||
IsoWorld _isoWorld = null;
|
|
||||||
public IsoWorld isoWorld {
|
public IsoWorld isoWorld {
|
||||||
get {
|
get {
|
||||||
if ( !_isoWorld && gameObject.activeInHierarchy ) {
|
return gameObject.activeInHierarchy
|
||||||
_isoWorld = GameObject.FindObjectOfType<IsoWorld>();
|
? IsoWorld.Instance
|
||||||
}
|
: null;
|
||||||
return _isoWorld;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ namespace IsoTools {
|
|||||||
[ExecuteInEditMode, DisallowMultipleComponent]
|
[ExecuteInEditMode, DisallowMultipleComponent]
|
||||||
public class IsoWorld : MonoBehaviour {
|
public class IsoWorld : MonoBehaviour {
|
||||||
|
|
||||||
|
static IsoWorld _instance = null;
|
||||||
|
|
||||||
bool _dirty = false;
|
bool _dirty = false;
|
||||||
IsoAssocList<IsoObject> _objects = new IsoAssocList<IsoObject>();
|
IsoAssocList<IsoObject> _objects = new IsoAssocList<IsoObject>();
|
||||||
IsoAssocList<IsoObject> _visibles = new IsoAssocList<IsoObject>();
|
IsoAssocList<IsoObject> _visibles = new IsoAssocList<IsoObject>();
|
||||||
@@ -129,6 +131,21 @@ namespace IsoTools {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Instance
|
||||||
|
//
|
||||||
|
// ---------------------------------------------------------------------
|
||||||
|
|
||||||
|
public static IsoWorld Instance {
|
||||||
|
get {
|
||||||
|
if ( !_instance ) {
|
||||||
|
_instance = GameObject.FindObjectOfType<IsoWorld>();
|
||||||
|
}
|
||||||
|
return _instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------
|
// ---------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// IsoToScreen/ScreenToIso
|
// IsoToScreen/ScreenToIso
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ namespace IsoTools.Tiled.Internal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
IsoWorld GetIsoWorld() {
|
IsoWorld GetIsoWorld() {
|
||||||
var iso_world = GameObject.FindObjectOfType<IsoWorld>();
|
var iso_world = IsoWorld.Instance;
|
||||||
if ( !iso_world ) {
|
if ( !iso_world ) {
|
||||||
throw new UnityException("not found IsoWorld");
|
throw new UnityException("not found IsoWorld");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user