protected virtual void OnDrawGizmos() { if (showGrid && world) { Gizmos.color = gizmosColor; Vector3 p = Vector3.zero; for (int i = 0; i <= spanX; i++) { p.x = i * world.cellSize; p.z = 0; Vector3 startPos = IsoUtil.IsoPosToLocalPos(p.x, p.y, p.z); p.z = spanZ * world.cellSize; Vector3 endPos = IsoUtil.IsoPosToLocalPos(p.x, p.y, p.z); Gizmos.DrawLine(transform.TransformPoint(startPos), transform.TransformPoint(endPos)); } for (int i = 0; i <= spanZ; i++) { p.z = i * world.cellSize; p.x = 0; Vector3 startPos = IsoUtil.IsoPosToLocalPos(p.x, p.y, p.z); p.x = spanX * world.cellSize; Vector3 endPos = IsoUtil.IsoPosToLocalPos(p.x, p.y, p.z); Gizmos.DrawLine(transform.TransformPoint(startPos), transform.TransformPoint(endPos)); } } }
public Vector2 LocalPosToGridPos(float px, float py, float offsetX = 0, float offsetY = 0) { float xx = (px - transform.localPosition.x) - root.localPosition.x - offsetX; float yy = (py - transform.localPosition.y) - root.localPosition.y - offsetY; return(IsoUtil.LocalPosToIsoGrid(cellSize, xx, yy)); }
public virtual void UpdateScreenPos() { Vector2 ScPos = IsoUtil.IsoPosToLocalPos(m_pos3D.x, m_pos3D.y, m_pos3D.z); Vector3 pos = transform.localPosition; pos.x = ScPos.x; pos.y = ScPos.y; transform.localPosition = pos; UpdateSpanPos(); }