Skip to content

Commit 443ec45

Browse files
Site changes [skip-ci]
1 parent a9f7e86 commit 443ec45

28 files changed

+2376
-3196
lines changed

_data/ref/beta/camera-lua.json

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,98 @@
423423
"tparams": [],
424424
"type": "CONSTANT"
425425
},
426+
{
427+
"brief": "Convert screen vector3 position to world",
428+
"description": "Converts a screen-space 2D point with view depth to a 3D world point.\nz is the view depth in world units measured from the camera plane along the camera forward axis.\nIf a camera isn't specified, the last enabled camera is used.",
429+
"error": "",
430+
"examples": "Place objects at the touch point with a random Z position, keeping them within the visible view zone.\n<div class=\"codehilite\"><pre><span></span><code> <span class=\"kr\">function</span> <span class=\"nf\">on_input</span><span class=\"p\">(</span><span class=\"n\">self</span><span class=\"p\">,</span> <span class=\"n\">action_id</span><span class=\"p\">,</span> <span class=\"n\">action</span><span class=\"p\">)</span>\n <span class=\"kr\">if</span> <span class=\"n\">action_id</span> <span class=\"o\">==</span> <span class=\"n\">hash</span><span class=\"p\">(</span><span class=\"s2\">&quot;touch&quot;</span><span class=\"p\">)</span> <span class=\"kr\">then</span>\n <span class=\"kr\">if</span> <span class=\"n\">action</span><span class=\"p\">.</span><span class=\"n\">pressed</span> <span class=\"kr\">then</span>\n <span class=\"kd\">local</span> <span class=\"n\">percpective_camera</span> <span class=\"o\">=</span> <span class=\"n\">msg</span><span class=\"p\">.</span><span class=\"n\">url</span><span class=\"p\">(</span><span class=\"s2\">&quot;#perspective_camera&quot;</span><span class=\"p\">)</span>\n <span class=\"kd\">local</span> <span class=\"n\">random_z</span> <span class=\"o\">=</span> <span class=\"nb\">math.random</span><span class=\"p\">(</span><span class=\"n\">camera</span><span class=\"p\">.</span><span class=\"n\">get_near_z</span><span class=\"p\">(</span><span class=\"n\">percpective_camera</span><span class=\"p\">)</span> <span class=\"o\">+</span> <span class=\"mf\">0.01</span><span class=\"p\">,</span> <span class=\"n\">camera</span><span class=\"p\">.</span><span class=\"n\">get_far_z</span><span class=\"p\">(</span><span class=\"n\">percpective_camera</span><span class=\"p\">)</span> <span class=\"o\">-</span> <span class=\"mf\">0.01</span><span class=\"p\">)</span>\n <span class=\"kd\">local</span> <span class=\"n\">world_position</span> <span class=\"o\">=</span> <span class=\"n\">camera</span><span class=\"p\">.</span><span class=\"n\">screen_to_world</span><span class=\"p\">(</span><span class=\"n\">vmath</span><span class=\"p\">.</span><span class=\"n\">vector3</span><span class=\"p\">(</span><span class=\"n\">action</span><span class=\"p\">.</span><span class=\"n\">screen_x</span><span class=\"p\">,</span> <span class=\"n\">action</span><span class=\"p\">.</span><span class=\"n\">screen_y</span><span class=\"p\">,</span> <span class=\"n\">random_z</span><span class=\"p\">),</span> <span class=\"n\">percpective_camera</span><span class=\"p\">)</span>\n <span class=\"n\">go</span><span class=\"p\">.</span><span class=\"n\">set_position</span><span class=\"p\">(</span><span class=\"n\">world_position</span><span class=\"p\">,</span> <span class=\"s2\">&quot;/go1&quot;</span><span class=\"p\">)</span>\n <span class=\"kr\">end</span>\n <span class=\"kr\">end</span>\n <span class=\"kr\">end</span>\n</code></pre></div>",
431+
"language": "",
432+
"members": [],
433+
"name": "camera.screen_to_world",
434+
"notes": [],
435+
"parameters": [
436+
{
437+
"doc": "Screen-space position (x, y) with z as view depth in world units",
438+
"is_optional": "False",
439+
"name": "pos",
440+
"types": [
441+
"vector3"
442+
]
443+
},
444+
{
445+
"doc": "optional camera id",
446+
"is_optional": "True",
447+
"name": "camera",
448+
"types": [
449+
"url",
450+
"number",
451+
"nil"
452+
]
453+
}
454+
],
455+
"replaces": "",
456+
"returnvalues": [
457+
{
458+
"doc": "the world coordinate",
459+
"name": "world_pos",
460+
"types": [
461+
"vector3"
462+
]
463+
}
464+
],
465+
"tparams": [],
466+
"type": "FUNCTION"
467+
},
468+
{
469+
"brief": "Convert screen XY to world point at near plane",
470+
"description": "Converts 2D screen coordinates (x,y) to the 3D world-space point on the camera's near plane for that pixel.\nIf a camera isn't specified, the last enabled camera is used.",
471+
"error": "",
472+
"examples": "Place objects at the touch point.\n<div class=\"codehilite\"><pre><span></span><code> <span class=\"kr\">function</span> <span class=\"nf\">on_input</span><span class=\"p\">(</span><span class=\"n\">self</span><span class=\"p\">,</span> <span class=\"n\">action_id</span><span class=\"p\">,</span> <span class=\"n\">action</span><span class=\"p\">)</span>\n <span class=\"kr\">if</span> <span class=\"n\">action_id</span> <span class=\"o\">==</span> <span class=\"n\">hash</span><span class=\"p\">(</span><span class=\"s2\">&quot;touch&quot;</span><span class=\"p\">)</span> <span class=\"kr\">then</span>\n <span class=\"kr\">if</span> <span class=\"n\">action</span><span class=\"p\">.</span><span class=\"n\">pressed</span> <span class=\"kr\">then</span>\n <span class=\"kd\">local</span> <span class=\"n\">world_position</span> <span class=\"o\">=</span> <span class=\"n\">camera</span><span class=\"p\">.</span><span class=\"n\">screen_xy_to_world</span><span class=\"p\">(</span><span class=\"n\">action</span><span class=\"p\">.</span><span class=\"n\">screen_x</span><span class=\"p\">,</span> <span class=\"n\">action</span><span class=\"p\">.</span><span class=\"n\">screen_y</span><span class=\"p\">)</span>\n <span class=\"n\">go</span><span class=\"p\">.</span><span class=\"n\">set_position</span><span class=\"p\">(</span><span class=\"n\">world_position</span><span class=\"p\">,</span> <span class=\"s2\">&quot;/go1&quot;</span><span class=\"p\">)</span>\n <span class=\"kr\">end</span>\n <span class=\"kr\">end</span>\n <span class=\"kr\">end</span>\n</code></pre></div>",
473+
"language": "",
474+
"members": [],
475+
"name": "camera.screen_xy_to_world",
476+
"notes": [],
477+
"parameters": [
478+
{
479+
"doc": "X coordinate on screen.",
480+
"is_optional": "False",
481+
"name": "x",
482+
"types": [
483+
"number"
484+
]
485+
},
486+
{
487+
"doc": "Y coordinate on screen.",
488+
"is_optional": "False",
489+
"name": "y",
490+
"types": [
491+
"number"
492+
]
493+
},
494+
{
495+
"doc": "optional camera id",
496+
"is_optional": "True",
497+
"name": "camera",
498+
"types": [
499+
"url",
500+
"number",
501+
"nil"
502+
]
503+
}
504+
],
505+
"replaces": "",
506+
"returnvalues": [
507+
{
508+
"doc": "the world coordinate on the camera near plane",
509+
"name": "world_pos",
510+
"types": [
511+
"vector3"
512+
]
513+
}
514+
],
515+
"tparams": [],
516+
"type": "FUNCTION"
517+
},
426518
{
427519
"brief": "set aspect ratio",
428520
"description": "Sets the manual aspect ratio for the camera. This value is only used when\nauto aspect ratio is disabled. To disable auto aspect ratio and use this\nmanual value, call camera.set_auto_aspect_ratio(camera, false).",
@@ -661,6 +753,48 @@
661753
"tparams": [],
662754
"type": "FUNCTION"
663755
},
756+
{
757+
"brief": "Convert world vector3 position to screen",
758+
"description": "Converts a 3D world position to screen-space coordinates with view depth.\nReturns a vector3 where x and y are in screen pixels and z is the view depth in world units\nmeasured from the camera plane along the camera forward axis. The returned z can be used with\ncamera.screen_to_world to reconstruct the world position on the same pixel ray.\nIf a camera isn't specified, the last enabled camera is used.",
759+
"error": "",
760+
"examples": "Convert go position into screen pisition\n<div class=\"codehilite\"><pre><span></span><code> <span class=\"n\">go</span><span class=\"p\">.</span><span class=\"n\">update_world_transform</span><span class=\"p\">(</span><span class=\"s2\">&quot;/go1&quot;</span><span class=\"p\">)</span>\n <span class=\"kd\">local</span> <span class=\"n\">world_pos</span> <span class=\"o\">=</span> <span class=\"n\">go</span><span class=\"p\">.</span><span class=\"n\">get_world_position</span><span class=\"p\">(</span><span class=\"s2\">&quot;/go1&quot;</span><span class=\"p\">)</span>\n <span class=\"kd\">local</span> <span class=\"n\">screen_pos</span> <span class=\"o\">=</span> <span class=\"n\">camera</span><span class=\"p\">.</span><span class=\"n\">world_to_screen</span><span class=\"p\">(</span><span class=\"n\">world_pos</span><span class=\"p\">)</span>\n</code></pre></div>",
761+
"language": "",
762+
"members": [],
763+
"name": "camera.world_to_screen",
764+
"notes": [],
765+
"parameters": [
766+
{
767+
"doc": "World-space position",
768+
"is_optional": "False",
769+
"name": "world_pos",
770+
"types": [
771+
"vector3"
772+
]
773+
},
774+
{
775+
"doc": "optional camera id",
776+
"is_optional": "True",
777+
"name": "camera",
778+
"types": [
779+
"url",
780+
"number",
781+
"nil"
782+
]
783+
}
784+
],
785+
"replaces": "",
786+
"returnvalues": [
787+
{
788+
"doc": "Screen position (x,y in pixels, z is view depth)",
789+
"name": "screen_pos",
790+
"types": [
791+
"vector3"
792+
]
793+
}
794+
],
795+
"tparams": [],
796+
"type": "FUNCTION"
797+
},
664798
{
665799
"brief": "<span class=\"type\">float</span> camera far_z",
666800
"description": "Camera frustum far plane.\nThe type of the property is float.",

0 commit comments

Comments
 (0)