2D Depth With Equal Speed.

I have found a couple of threads pertaining to this issue/query but the best I found was a discussion about maths which got a little off topic. Feel free to point me at other threads regarding this issue if you know of any that cover this ‘problem’.

I felt it would be easier to upload an image to reference here.

As you can see I am using a 2D game set up which also uses a 3d depth, I want to smoothly move around the scene including diagonally using what looks like equal speed in any direction.
The problem when I was searching for solutions to this is I kept finding references to 90 degree top down games and paralax scrolling, this wasn’t what I was after.
I have used a method of setting an object at an angle then transform.Translate to the direction I am wishing to head in, then using a script on an unparented sprite to snap to the coords of the ‘3d gadget’.
This all works well and good but I was wondering if there is a 2D equivalent of this whereby I can keep on the x and y plane of the 2d screen but still have a nice equal speed in all directions when walking ‘in and out’ of the scene.
I understand I could simply copy the x and y position of the gadget I use for moving around but is there a 2D way of doing this?

I have no idea if I made any sense, if not just ask for me to elaborate and I will do so.
Basically, 2d depth movement in any direction with equal speed to give the impression of depth without using 3d object to reference.

Well you currently have a 3D engine so you might as well use it’s functions, but in the old games each pixel would be a new layer, so the Y would be the depth used, and you just ned to tweak the speed at which it moves in the Y to fake depth, since your game doesn’t use a nice rectangle you may also have to check if they are walking out of the ring and bringthem back in a pixel or two.

Another way, using the full 3D features of unity would be to do a DOOM style use of it. Place your camera over the ring and looking down at 45% and don’t use orthographic, making the sprite look towards the camera at all times and simply doing as if it was in 3D, to fake the 2D look

Yeah cheers irlelaldl, I already am aware of the 3d usage to implement this effect, I was just under the impression I was missing some work around for a 2D method, I use the method you mentioned to angle things to the camera but to keep things on a 2d plane and using sorting orders you can use a script to grab the 3d widgets location then just use the x and y transforms to allow the sprite to stay in a true 2D space.

Unquote the line to allow for automatic sorting order based on y position.

using UnityEngine;
using System.Collections;

public class CopyPosition : MonoBehaviour {

    public Transform target;

    void Update () {
        transform.position = new Vector3(target.position.x, target.position.y, 0f);
        //GetComponent<SpriteRenderer>().sortingOrder = Mathf.RoundToInt(transform.position.y * 100f) * -1;
    }
}

If you are using an orthographic camera then there is no need to make the sprites face the camera unless you wanted to make them have a small rotation when seen.

Wasn’t sure if you had used the full solution I provided or not so figured I might as well mention

With ortho camera you still have to rotate/point the sprite at the camera otherwise you will have scaling issues, tried and tested. The main issue was moving the sprite around on the x and y while using speed throttling on the vertical and particularly the diagonal axis.
Thanks for the input anyway.

With an ortho cam the sprite needs to face straight up on the Z axis, or it will be skewed when viewed in ortho view