var temp = transform.basis #сохраняем старый базис
# look_at(target.back().origin,Vector3.UP)#смотрим на цель, это сохранится в текущем базисе, из-за этого и куча движений с буферными базисами
look_at(target.get_global_transform().origin,Vector3.UP)#смотрим на цель, это сохранится в текущем базисе, из-за этого и куча движений с буферными базисами
var target_rot = transform.basis#сохраняем целевой базис
$laser.transform.basis = $laser.transform.basis.slerp(target_rot,speed_rotation*delta) # постепенно поворачиваем к цели
# $laser.rotation_degrees.x = clamp($laser.rotation_degrees.x,x_limiter.x,x_limiter.y)# ограничиваем вращение пушки вниз, чтобы стреляла только в верхнюю полусферу
# $laser.rotation_degrees.y = clamp($laser.rotation_degrees.y,y_limiter.x,y_limiter.y)# ограничиваем вращение пушки по сторонам, если нужно
$gun_body.rotation.y = $laser.rotation.y
$Turret.rotation.y = $laser.rotation.y
func get_uuid(object):
# print('==name==',object.name)
if object.get('uuid'):
# print('=uuid==',object.uuid)
return object.uuid
else:
return get_uuid(object.get_parent())
# проверка, входит ли uuid в данный объект
# я могу видеть часть от целого, нужно подняться к предку и проверить его uuid
# проверяем по восходящей до космоса
func sercxado_uuid(uuid, objekt):
if objekt.get('uuid'):
if uuid == objekt.uuid:
return true
if objekt.get_parent().name != 'space':
return sercxado_uuid(uuid, objekt.get_parent())
return false
func _physics_process(delta):
if target:
# print('цель задана')
var length_to_end=beam_length
var can_shoot = false
# if !target.empty():
rotate_gun(delta)
if $laser.is_colliding():
# var uuid = \"\"
# if $laser.get_collider().get('uuid'):
# uuid = $laser.get_collider().uuid
# else: # для станции идём по восходящим родителям до нахождения uuid
# look_at(target.back().origin,Vector3.UP)#смотрим на цель, это сохранится в текущем базисе, из-за этого и куча движений с буферными базисами
look_at(target.get_global_transform().origin,Vector3.UP)#смотрим на цель, это сохранится в текущем базисе, из-за этого и куча движений с буферными базисами
$laser.transform.basis=$laser.transform.basis.slerp(target_rot,speed_rotation*delta)# постепенно поворачиваем к цели
# $laser.rotation_degrees.x = clamp($laser.rotation_degrees.x,x_limiter.x,x_limiter.y)# ограничиваем вращение пушки вниз, чтобы стреляла только в верхнюю полусферу
# $laser.rotation_degrees.y = clamp($laser.rotation_degrees.y,y_limiter.x,y_limiter.y)# ограничиваем вращение пушки по сторонам, если нужно
$gun_body.rotation.y=$laser.rotation.y
$Turret.rotation.y=$laser.rotation.y
funcget_uuid(object):
# print('==name==',object.name)
ifobject.get('uuid'):
# print('=uuid==',object.uuid)
returnobject.uuid
else:
returnget_uuid(object.get_parent())
# проверка, входит ли uuid в данный объект
# я могу видеть часть от целого, нужно подняться к предку и проверить его uuid
# проверяем по восходящей до космоса
funcsercxado_uuid(uuid,objekt):
ifobjekt.get('uuid'):
ifuuid==objekt.uuid:
returntrue
ifobjekt.get_parent().name!='space':
returnsercxado_uuid(uuid,objekt.get_parent())
returnfalse
func_physics_process(delta):
iftarget:
# print('цель задана')
varlength_to_end=beam_length
varcan_shoot=false
# if !target.empty():
rotate_gun(delta)
if$laser.is_colliding():
# var uuid = ""
# if $laser.get_collider().get('uuid'):
# uuid = $laser.get_collider().uuid
# else: # для станции идём по восходящим родителям до нахождения uuid