You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.5 KiB
Lua
47 lines
1.5 KiB
Lua
----------------------------------------------------------------------------------------------------
|
|
--
|
|
-- Copyright (c) Contributors to the Open 3D Engine Project.
|
|
-- For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
--
|
|
-- SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
--
|
|
--
|
|
--
|
|
----------------------------------------------------------------------------------------------------
|
|
|
|
local NavigationAgent = {
|
|
Properties = {
|
|
Goal=EntityId(),
|
|
CustomMovement=false
|
|
}
|
|
}
|
|
|
|
function NavigationAgent:OnActivate()
|
|
self.listener = NavigationComponentNotificationBus.Connect(self, self.entityId)
|
|
self.name = GameEntityContextRequestBus.Broadcast.GetEntityName(self.entityId)
|
|
Debug.Log("OnActivate " .. self.name)
|
|
|
|
NavigationComponentRequestBus.Event.FindPathToEntity(self.entityId, self.Properties.Goal)
|
|
end
|
|
|
|
function NavigationAgent:OnTraversalCancelled(requestId)
|
|
Debug.Log("OnTraversalCancelled ".. self.name)
|
|
end
|
|
|
|
function NavigationAgent:OnTraversalPathUpdate(requestId, nextPathPosition, inflectionPosition)
|
|
if self.Properties.CustomMovement then
|
|
Debug.Log("OnTraversalPathUpdate ".. self.name)
|
|
TransformBus.Event.SetWorldTranslation(self.entityId, nextPathPosition)
|
|
end
|
|
end
|
|
function NavigationAgent:OnTraversalComplete(requestId)
|
|
Debug.Log("OnTraversalComplete ".. self.name)
|
|
end
|
|
|
|
function NavigationAgent:OnDeactivate()
|
|
self.listener:Disconnect()
|
|
Debug.Log("OnDeactivate " .. self.name)
|
|
end
|
|
|
|
return NavigationAgent
|