void TranslateViewerLatLng(float xmove, float zmove) { var bt = moveplane.transform; var t = transform; var p = t.position; var postr = t.position.ToString("f3"); var(vo, nrm, _) = qmm.GetWcMeshPosProjectedAlongY(p); var fwd = bt.forward; p += zmove * fwd + xmove * bt.right; var fwdstr = fwd.ToString("f2"); var(vn, _, _) = qmm.GetWcMeshPosProjectedAlongY(p); //t.position = p + Vector3.up * (vn.y - vo.y); t.position = vn; //bt.position = t.position; if (Vector3.Dot(Vector3.up, nrm) < 0) { nrm = -nrm; } lstnrm = nrm; var nrmrot = Quaternion.FromToRotation(Vector3.up, nrm); body.transform.localRotation = nrmrot * bodyPrefabRotation; //bodypose.transform.localRotation = nrmrot; rodgo.transform.localRotation = nrmrot; var pnstr = t.position.ToString("f3"); var nrmstr = nrm.ToString("f3"); //Debug.Log($"translate viewer = xmove:{xmove} zmove:{zmove} po:{postr} pn:{pnstr} fwd:{fwdstr}"); }
public void InitViewer(QmapMesh qmm) { this.qmm = qmm; viewerAvatar = viewerAvatarDefaultValue; viewerCamPosition = ViewerCamPositionDefaultValue; viewerControl = ViewerControlDefaultValue; //var (vo,_, istat) = qmm.GetWcMeshPosFromLambda(0.5f, 0.5f); var(vo, _, istat) = qmm.GetWcMeshPosProjectedAlongY(viewerDefaultPosition); transform.position = vo; transform.localRotation = Quaternion.Euler(viewerDefaultRotation); qcmdescriptor = qmm.descriptor; BuildViewer(); }