using System.Collections; using System.Collections.Generic; using UnityEngine; public class TestTopDown2DTransform : MonoBehaviour { public bool useGravity = false; public Vector3 position // x, y, h { get { Vector3 topdownPos = transform.position; topdownPos.y -= h; topdownPos.z = h; return topdownPos; } set { h = value.z; Vector3 realPos = transform.position; realPos.y = value.y + h; transform.position = realPos; } } public float x { get { return position.x; } } public float y { get { return position.y; } } public float h = 0; public float z { get { return transform.position.z; } } public float depth { get { return this.z; } } private float vy = 0; private void Update() { if (useGravity) { Vector3 pos = position; vy += -9.8f * Time.deltaTime; pos.z = Mathf.Max(pos.z + vy * Time.deltaTime, 0f); if(pos.z == 0) { vy = 0; } position = pos; } } }