Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | SourceSkyBoxer |
Hello everyone, can I have example for Mouse Button’s press with translate, rotate or zoom in GUI with ViewportContainer ( from TextureMaker ) or ViewportSprite ( 3D_in_2D )
Example:
Button Left for translate with whole spatial,
Button Middle or Wheel for zoom with whole spatial and
Button right for rotate with whole spatial.
tool
extends ViewportContainer
var preview_maximized = false
var mouse_start = Vector2(0,0)
var mouse_end = Vector2(0,0)
var speed = 0.5
func _ready():
var m = $MaterialPreview/Objects/Cube.get_surface_material(0).duplicate()
$MaterialPreview/Objects/Cube.set_surface_material(0, m)
$MaterialPreview/Objects/Cylinder.set_surface_material(0, m)
m = $MaterialPreview/Objects/Sphere.get_surface_material(0).duplicate()
$MaterialPreview/Objects/Sphere.set_surface_material(0, m)
func _on_Model_item_selected(id):
var model = $Config/Model.get_item_text(id)
for c in $MaterialPreview/Objects.get_children():
c.visible = (c.get_name() == model)
func get_materials():
return [ $MaterialPreview/Objects/Cube.get_surface_material(0), $MaterialPreview/Objects/Sphere.get_surface_material(0) ]
func _input(event):
if Input.is_mouse_button_pressed(BUTTON_LEFT):
var cam = $MaterialPreview/Objects
var x_axis = cam.transform.basis[0]
var y_axis = cam.transform.basis[1]
var mouse_dir = Vector2(mouse_end.x - mouse_start.x, -mouse_end.y - -mouse_start.y)
cam.rotate(y_axis, mouse_dir.x * speed)
cam.rotate(x_axis, mouse_dir.y * speed)
mouse_dir = Vector3(mouse_dir.x, mouse_dir.y, 0).normalized()
I have tried but it can’t move with meshinstance cube.
It is just example - I really want know how do I move, rotate and zoom with MouseButton’s Press?
PS: Check my community’s thread
Thanks and help is welcome. Don’t worry! I am sorry for my bad English…