Kamera

class publik Camera

Mewakili kamera virtual, yang menentukan perspektif saat melihat tampilan.

Jika kamera adalah bagian dari ArSceneView, kamera akan otomatis melacak pose kamera dari ARCore. Selain itu, metode berikut akan memunculkan UnsupportedOperationException saat dipanggil:

Semua fungsi lainnya dalam Node didukung. Anda dapat mengakses posisi dan rotasi kamera, menetapkan bentuk tabrakan ke kamera, atau menambahkan turunan ke kamera. Menonaktifkan kamera akan menonaktifkan rendering.

Metode Publik

float
float
float
getVerticalFovDegrees()
Mendapatkan ruang pandang vertikal kamera.
Ray
screenPointToRay(float x, float y)
Menghitung sinar di ruang dunia yang berasal dari bidang dekat kamera dan melalui suatu titik dalam ruang layar.
void
setLocalPosition(posisi Vector3)
Tetapkan posisi kamera.
void
setLocalRotation(Rotasi Quaternion)
Tetapkan rotasi kamera.
void
setParent(induk NodeParent)
Operasi tidak didukung.
void
setVerticalFovDegrees(float verticalFov)
Menetapkan ruang pandang vertikal untuk kamera non-ar dalam derajat.
void
setWorldPosition(posisi Vector3)
Tetapkan posisi kamera.
void
setWorldRotation(Quaternion rotasi)
Tetapkan rotasi kamera.
Vektor3
worldToScreenPoint(titik Vector3)
Ubah titik dari ruang dunia menjadi ruang layar.

Metode Turunan

Metode Publik

float publik getFarClipPlane ()

float publik getNearClipPlane ()

float publik getVerticalFovDegrees ()

Mendapatkan ruang pandang vertikal kamera.

Jika ini adalah kamera AR, penghitungannya berdasarkan informasi kamera dari ARCore dan dapat bervariasi di antara perangkat. Ini tidak dapat dihitung sampai frame pertama setelah sesi ARCore dilanjutkan, dalam hal ini IllegalStateException dilempar.

Jika tidak, nilai yang ditetapkan oleh setVerticalFovDegrees(float) akan ditampilkan, dengan default 90 derajat.

Menampilkan
IllegalStateException jika dipanggil sebelum frame pertama setelah ARCore dilanjutkan

publik Ray screenPointToRay (float x, float y)

Menghitung sinar di ruang dunia yang berasal dari bidang dekat kamera dan melalui suatu titik dalam ruang layar. Ruang layar dalam koordinat layar perangkat Android: Kiri Atas = (0, 0) Kanan Bawah = (Lebar Layar, Tinggi Layar) Ruang koordinat perangkat tidak terpengaruh oleh orientasi perangkat.

Parameter
x Posisi X dalam koordinat layar perangkat.
y Posisi Y dalam koordinat layar perangkat.

publik void setLocalPosition (posisi Vector3)

Tetapkan posisi kamera. Kamera selalu isTopLevel(), sehingga berperilaku sama seperti setWorldPosition(Vector3).

Jika kamera merupakan bagian dari ArSceneView, berarti operasi ini tidak didukung. Posisi kamera tidak dapat diubah, dikontrol oleh pose kamera ARCore.

Parameter
position Posisi yang akan diterapkan.

publik void setLocalRotation (Rotasi Quaternion)

Tetapkan rotasi kamera. Kamera selalu isTopLevel(), sehingga berperilaku sama seperti setWorldRotation(Quaternion).

Jika kamera merupakan bagian dari ArSceneView, berarti operasi ini tidak didukung. Rotasi kamera tidak dapat diubah, dikontrol oleh pose kamera ARCore.

Parameter
rotasi Rotasi yang akan diterapkan.

publik void setParent (NodeParent parent)

Operasi tidak didukung. Orang tua Kamera tidak dapat diubah, selalu ada adegan.

Parameter
induk Induk baru tempat node ini akan menjadi turunannya. Jika null, node ini akan dilepaskan dari induknya.

publik void setVerticalFovDegrees (float verticalFov)

Menetapkan ruang pandang vertikal untuk kamera non-ar dalam derajat. Jika ini adalah kamera AR, fov berasal dari ARCore dan tidak dapat ditetapkan sehingga pengecualian ditampilkan. Nilai defaultnya adalah 90 derajat.

Parameter
Vertikal
Menampilkan
Tidak DidukungOperationException jika ini adalah kamera AR

publik void setWorldPosition (Posisi vektor3)

Tetapkan posisi kamera. Kamera selalu isTopLevel(), sehingga berperilaku sama seperti setLocalPosition(Vector3).

Jika kamera merupakan bagian dari ArSceneView, berarti operasi ini tidak didukung. Posisi kamera tidak dapat diubah, dikontrol oleh pose kamera ARCore.

Parameter
position Posisi yang akan diterapkan.

publik void setWorldRotation (rotasi Quaternion)

Tetapkan rotasi kamera. Kamera selalu isTopLevel(), sehingga berperilaku sama seperti setLocalRotation(Quaternion).

Jika kamera merupakan bagian dari ArSceneView, berarti operasi ini tidak didukung. Rotasi kamera tidak dapat diubah, dikontrol oleh pose kamera ARCore.

Parameter
rotasi Rotasi yang akan diterapkan.

publik Vector3 worldToScreenPoint (Vector3 titik)

Ubah titik dari ruang dunia menjadi ruang layar.

Nilai X negatif jika titik tersisa dari area pandang, antara 0 dan lebar SceneView saat titik berada dalam area pandang, dan lebih besar dari lebar saat titik berada di sebelah kanan area pandang.

Nilai Y negatif jika titik berada di bawah area pandang, antara 0 dan tinggi SceneView saat titik berada dalam area pandang, dan lebih besar dari tinggi saat titik berada di atas area pandang.

Nilai Z selalu 0 karena nilai yang ditampilkan adalah koordinat 2D.

Parameter
poin titik di ruang dunia untuk berkonversi
Hasil
  • vektor baru yang mewakili titik di ruang layar.