Logo video2dn
  • Сохранить видео с ютуба
  • Категории
    • Музыка
    • Кино и Анимация
    • Автомобили
    • Животные
    • Спорт
    • Путешествия
    • Игры
    • Люди и Блоги
    • Юмор
    • Развлечения
    • Новости и Политика
    • Howto и Стиль
    • Diy своими руками
    • Образование
    • Наука и Технологии
    • Некоммерческие Организации
  • О сайте

Скачать или смотреть Godot 3.5 3D AI pathfinding with player detection

  • Ciconia - game dev
  • 2022-10-23
  • 5611
Godot 3.5 3D AI pathfinding with player detection
  • ok logo

Скачать Godot 3.5 3D AI pathfinding with player detection бесплатно в качестве 4к (2к / 1080p)

У нас вы можете скачать бесплатно Godot 3.5 3D AI pathfinding with player detection или посмотреть видео с ютуба в максимальном доступном качестве.

Для скачивания выберите вариант из формы ниже:

  • Информация по загрузке:

Cкачать музыку Godot 3.5 3D AI pathfinding with player detection бесплатно в формате MP3:

Если иконки загрузки не отобразились, ПОЖАЛУЙСТА, НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если у вас возникли трудности с загрузкой, пожалуйста, свяжитесь с нами по контактам, указанным в нижней части страницы.
Спасибо за использование сервиса video2dn.com

Описание к видео Godot 3.5 3D AI pathfinding with player detection

A video showing how to create an 3D AI that detects the presence of a player and finds a path to him, works in Godot version 3.5

Want to know more about me? Here are some links to my accounts:
Twitter:   / ciconia_gamedev  
My website: https://ciconiagamedev.wixsite.com/ci...
Facebook: https://www.facebook.com/profile.php?...
Link to my games: https://ciconia-game-dev.itch.io/

And this is the script I used:

extends KinematicBody
#gravity
var gravity = 15
#idle rotation
var xlocation = rand_range(-360,360)
var zlocation = rand_range(-360,360)
#folowing player
var harass = false
#player escape event
var player_escape = false
#face direction of player
onready var target = get_parent().get_node("Player")
var rot_speed = 0.05
#map navigation
onready var agent : NavigationAgent = $NavigationAgent
onready var target_location : Node = $"../Player"
var speed = 5
var minimum_speed = 3
var idle_speed = rand_range(minimum_speed, speed)
var move_or_not = [true, false]
var start_move = move_or_not[randi() % move_or_not.size()]

func _on_Area_body_entered(body):
if body.name == ("Player"):
rot_speed = 0.1
harass = true

func _process(delta):
if harass == true:
if $"../Player" != null:
#face direction of player
var global_pos = self.global_transform.origin
var target_pos = target.global_transform.origin
var wtransform = self.global_transform.looking_at(Vector3(target_pos.x, global_pos.y, target_pos.z), Vector3.UP)
var wrotation = Quat(global_transform.basis).slerp(Quat(wtransform.basis), rot_speed)
self.global_transform = Transform(Basis(wrotation), global_pos)

#set player location
agent.set_target_location(target_location.transform.origin)
#move to player
var next = agent.get_next_location()
var velocity = (next - transform.origin).normalized() * speed * delta
move_and_collide(velocity)
elif player_escape == false:
#idle action
var global_pos = self.global_transform.origin
var wtransform = self.global_transform.looking_at(Vector3(xlocation, global_pos.y, zlocation), Vector3.UP)
var wrotation = Quat(global_transform.basis).slerp(Quat(wtransform.basis), rot_speed)
self.global_transform = Transform(Basis(wrotation), global_pos)
if start_move == true:
var velocity = global_transform.basis.z.normalized() * idle_speed * delta
move_and_collide(-velocity)
else:
#enemy look at player when player escape
var global_pos = self.global_transform.origin
var target_pos = target.global_transform.origin
var wtransform = self.global_transform.looking_at(Vector3(target_pos.x, global_pos.y, target_pos.z), Vector3.UP)
var wrotation = Quat(global_transform.basis).slerp(Quat(wtransform.basis), rot_speed)
self.global_transform = Transform(Basis(wrotation), global_pos)

if not is_on_floor():
move_and_collide(-global_transform.basis.y.normalized() * gravity * delta)

func _on_Area_body_exited(body):
if body.name == ("Player"):
rot_speed = 0.05
harass = false
#when player escape enemy wait and look at player
player_escape = true
$Timer2.start()

#timer for random looking
func _on_Timer_timeout():
$Timer.set_wait_time(rand_range(4,8))
xlocation = rand_range(-360,360)
zlocation = rand_range(-360,360)
#random speed of idle move
idle_speed = rand_range(minimum_speed, speed)
#enemy will move or just look around
start_move = move_or_not[randi() % move_or_not.size()]
$Timer.start()

func _on_NavigationAgent_velocity_computed(safe_velocity):
move_and_collide(safe_velocity)


func _on_Timer2_timeout():
#enemy going back to idle action
player_escape = false

Комментарии

Информация по комментариям в разработке

Похожие видео

  • О нас
  • Контакты
  • Отказ от ответственности - Disclaimer
  • Условия использования сайта - TOS
  • Политика конфиденциальности

video2dn Copyright © 2023 - 2025

Контакты для правообладателей [email protected]