Files
unity-iso-tools/Assets/IsoTools/Docs/API.md
2023-01-05 04:37:05 +07:00

195 lines
6.9 KiB
Markdown

## IsoWorld
![](./Images/api-image-1.png)
```csharp
float tileSize { get; set; } // (0.00; ----) "A" (Image 1)
float tileRatio { get; set; } // (0.25; 1.00) "A" * tileRatio = "B"
float tileAngle { get; set; } // (0.00; 90.0) "D"
float tileHeight { get; set; } // (0.00; ----) "C"
```
```csharp
float startDepth { get; set; } // start value for depth sorting
float stepDepth { get; set; } // step depth sorting for every object
```
```csharp
static int AllWorldCount { get; } // Number of IsoWorld
static IsoWorld GetWorld(int index); // Get active IsoWorld by index
```
```csharp
// Convert 3D isometric coordinates to 2D screen coordinates
// iso - isometric coordinates
// [return] - converted screen coordinates
Vector2 IsoToScreen(Vector3 iso);
// Convert 2D screen coordinates to 3D isometric coordinates
// pos - screen coordinates
// iso_z - specific isometric Z
// [return] - converted isometric coordinates
Vector3 ScreenToIso(Vector2 pos, float iso_z = 0.0f);
```
```csharp
// Convert touch position to isometric coordinates for main camera
// finger_id - finger id
// iso_z - specific isometric Z
Vector3 TouchIsoPosition(int finger_id, float iso_z = 0.0f);
// Convert touch position to isometric coordinates for specific camera
// finger_id - finger id
// camera - specific camera
// iso_z - specific isometric Z
Vector3 TouchIsoPosition(int finger_id, Camera camera, float iso_z = 0.0f);
```
```csharp
// Convert touch position to isometric coordinates of tile for main camera
// finger_id - finger id
// iso_z - specific isometric Z
Vector3 TouchIsoTilePosition(int finger_id, float iso_z = 0.0f);
// Convert touch position to isometric coordinates of tile for specific camera
// finger_id - finger id
// camera - specific camera
// iso_z - specific isometric Z
Vector3 TouchIsoTilePosition(int finger_id, Camera camera, float iso_z = 0.0f);
```
```csharp
// Convert mouse position to isometric coordinates for main camera
// iso_z - specific isometric Z
Vector3 MouseIsoPosition(float iso_z = 0.0f)
// Convert mouse position to isometric coordinates for specific camera
// camera - specific camera
// iso_z - specific isometric Z
Vector3 MouseIsoPosition(Camera camera, float iso_z = 0.0f)
```
```csharp
// Convert mouse position to isometric coordinates of tile for main camera
// iso_z - specific isometric Z
Vector3 MouseIsoTilePosition(float iso_z = 0.0f);
// Convert mouse position to isometric coordinates of tile for specific camera
// camera - specific camera
// iso_z - specific isometric Z
Vector3 MouseIsoTilePosition(Camera camera, float iso_z = 0.0f);
```
## IsoObject
![](./Images/api-image-2.png)
```csharp
public enum Mode {
Mode2d, // sorting mode for sprites
Mode3d // sorting mode for 3d models
}
// Sorting mode
Mode mode { get; set; }
```
```csharp
// If enable, you should call "UpdateCachedRenderers"
// when you change children hierarchy for this "IsoObject"
bool cacheRenderers { get; set; }
```
```csharp
bool isAlignment { get; set; } // aligment by tiles in editor
bool isShowBounds { get; set; } // show object bounds in editor
```
```csharp
Vector3 size { get; set; } // Isometric size of object
float sizeX { get; set; } // Isometric size of object by X
float sizeY { get; set; } // Isometric size of object by Y
float sizeZ { get; set; } // Isometric size of object by Z
Vector2 sizeXY { get; set; } // Isometric size of object by XY plane
Vector2 sizeYZ { get; set; } // Isometric size of object by YZ plane
Vector2 sizeXZ { get; set; } // Isometric size of object by XZ plane
```
```csharp
Vector3 position { get; set; } // Isometric position of object
float positionX { get; set; } // Isometric position of object by X
float positionY { get; set; } // Isometric position of object by Y
float positionZ { get; set; } // Isometric position of object by Z
Vector2 positionXY { get; set; } // Isometric position of object by XY plane
Vector2 positionYZ { get; set; } // Isometric position of object by YZ plane
Vector2 positionXZ { get; set; } // Isometric position of object by XZ plane
```
```csharp
Vector3 tilePosition { get; set; } // Isometric position of object tile
float tilePositionX { get; set; } // Isometric position of object tile by X
float tilePositionY { get; set; } // Isometric position of object tile by Y
float tilePositionZ { get; set; } // Isometric position of object tile by Z
Vector2 tilePositionXY { get; set; } // Isometric position of object tile by XY plane
Vector2 tilePositionYZ { get; set; } // Isometric position of object tile by YZ plane
Vector2 tilePositionXZ { get; set; } // Isometric position of object tile by XZ plane
```
```csharp
// Return Ray from virtual isometric camera to isometric point
Ray RayFromIsoCameraToIsoPoint(Vector3 iso_pnt);
```
## IsoPhysics
```csharp
bool Raycast(...)
int RaycastNonAlloc(...)
...
```
Copy of Unity raycast functions ([Physics.Raycast](http://docs.unity3d.com/ScriptReference/Physics.Raycast.html), [Physics.RaycastNonAlloc](http://docs.unity3d.com/ScriptReference/Physics.RaycastNonAlloc.html), [Physics.BoxCast](https://docs.unity3d.com/ScriptReference/Physics.BoxCast.html) etc.) for isometric world.
## Physics events
```csharp
void OnIsoTriggerEnter (IsoCollider iso_collider);
void OnIsoTriggerExit (IsoCollider iso_collider);
void OnIsoCollisionEnter (IsoCollision iso_collision);
void OnIsoCollisionExit (IsoCollision iso_collision);
```
Copy of Unity physics events ([OnTriggerEnter](http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerEnter.html), [OnTriggerExit](http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerExit.html), [OnCollisionEnter](http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnCollisionEnter.html), [OnCollisionExit](http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnCollisionExit.html)) for isometric world.
> Note! For listen trigger events you should add add IsoTriggerListener for your IsoObject and IsoCollisionListener for listen collision events.
## IsoRigidbody
Copy of [Rigidbody](http://docs.unity3d.com/ScriptReference/Rigidbody.html) for isometric world.
## IsoCollider
Copy of [Collider](http://docs.unity3d.com/ScriptReference/Collider.html) for isometric world.
## IsoBoxCollider
Copy of [BoxCollider](http://docs.unity3d.com/ScriptReference/BoxCollider.html) for isometric world.
## IsoSphereCollider
Copy of [SphereCollider](http://docs.unity3d.com/ScriptReference/SphereCollider.html) for isometric world.
## IsoCapsuleCollider
Copy of [CapsuleCollider](http://docs.unity3d.com/ScriptReference/CapsuleCollider.html) for isometric world.
## IsoCollision
Copy of [Collision](http://docs.unity3d.com/ScriptReference/Collision.html) for isometric world.
## IsoContactPoint
Copy of [ContactPoint](http://docs.unity3d.com/ScriptReference/ContactPoint.html) for isometric world.
## IsoRaycastHit
Copy of [RaycastHit](http://docs.unity3d.com/ScriptReference/RaycastHit.html) for isometric world.