engage/generated/unity_engine/ai/
navmesh.rs1#[cfg(feature = "unity_engine-ai-navmesh-types")]
4mod __types {
5 #[allow(unused_imports)] use ::unity::prelude::*;
6
7 use super::*;
8 use crate::system::{
9 delegate::{Delegate, IDelegate},
10 multicastdelegate::{IMulticastDelegate, MulticastDelegate},
11 object::{IObject, Object},
12 };
13
14 #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/unity_engine/ai/navmesh/NavMesh_OnNavMeshPreUpdate.md"))]
15 #[::unity::class(namespace = "UnityEngine.AI", name = "NavMesh.OnNavMeshPreUpdate")]
16 #[parent(crate::system::multicastdelegate::MulticastDelegate)]
17 pub struct NavMesh_OnNavMeshPreUpdate {}
18
19 #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/unity_engine/ai/navmesh/NavMesh.md"))]
20 #[::unity::class(namespace = "UnityEngine.AI", name = "NavMesh")]
21 #[parent(crate::system::object::Object)]
22 pub struct NavMesh {
23 #[static_field]
24 #[rename(name = "onPreUpdate")]
25 pub on_pre_update: crate::unity_engine::ai::navmesh::NavMesh_OnNavMeshPreUpdate,
26 }
27}
28
29#[cfg(feature = "unity_engine-ai-navmesh-types")]
30pub use __types::*;
31
32#[cfg(feature = "unity_engine-ai-navmesh")]
33pub trait INavMesh_OnNavMeshPreUpdateMethods: INavMesh_OnNavMeshPreUpdate {
34 #[doc = "`.ctor(crate::system::object::Object, ::unity::IntPtr)` overload"]
35 fn ctor(self, object: impl ::core::convert::Into<crate::system::object::Object>, method: impl ::core::convert::Into<::unity::IntPtr>) -> () {
36 unsafe {
37 let __receiver =
38 <NavMesh_OnNavMeshPreUpdate as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
39 ::unity::il2cpp_call!((::unity::module_base()+0x3f44300usize)as*mut u8,();
40(NavMesh_OnNavMeshPreUpdate)__receiver,(crate::system::object::Object)::core::convert::Into::into(object),(::unity::IntPtr)::core::convert::Into::into(method))
41 }
42 }
43 #[doc = "`Invoke()` overload"]
44 fn invoke(self) -> () {
45 unsafe {
46 let __receiver =
47 <NavMesh_OnNavMeshPreUpdate as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
48 {
49 let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
50 let __vi = *__vt.get(13usize).unwrap_or_else(|| {
51 panic!(
52 "unity: virtual slot {}
53 out of range (vtable len {}
54) on the runtime class behind {}
55 (method `{}
56`)",
57 13usize,
58 __vt.len(),
59 <NavMesh_OnNavMeshPreUpdate as ::unity::ClassIdentity>::NAME,
60 "Invoke",
61 )
62 });
63 let __inner: extern "C" fn(NavMesh_OnNavMeshPreUpdate, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__vi.method_ptr);
64 let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
65 __inner(__receiver, __mi)
66 }
67 }
68 }
69}
70
71#[cfg(feature = "unity_engine-ai-navmesh")]
72impl<__T: INavMesh_OnNavMeshPreUpdate> INavMesh_OnNavMeshPreUpdateMethods for __T {}
73
74#[cfg(feature = "unity_engine-ai-navmesh")]
75impl NavMesh_OnNavMeshPreUpdate {
76 pub fn ctor_method_info() -> &'static ::unity::il2cpp::MethodInfo {
77 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
78 }
79
80 pub fn invoke_method_info() -> &'static ::unity::il2cpp::MethodInfo {
81 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
82 }
83}
84
85#[cfg(feature = "unity_engine-ai-navmesh")]
86impl NavMesh_OnNavMeshPreUpdate {
87 #[doc = "Direct (non-virtual) call to `NavMesh_OnNavMeshPreUpdate`'s own `Invoke`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
88 pub unsafe fn invoke(this: impl ::core::convert::Into<::unity::IlInstance>) -> () {
89 let __mi = Self::invoke_method_info();
90 let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__mi.method_ptr);
91 __inner(this.into(), ::core::option::Option::None)
92 }
93}
94
95#[cfg(feature = "unity_engine-ai-navmesh")]
96impl NavMesh_OnNavMeshPreUpdate {
97 #[doc = "`.ctor(crate::system::object::Object, ::unity::IntPtr)` — overload selector"]
98 pub fn new(object: crate::system::object::Object, method: ::unity::IntPtr) -> Self {
99 let this = <Self as ::unity::FromIlInstance>::instantiate().unwrap_or_else(|| {
100 panic!(
101 "{}
102::{}
103 failed to instantiate",
104 ::core::stringify!(NavMesh_OnNavMeshPreUpdate),
105 ::core::stringify!(new),
106 )
107 });
108 <Self as INavMesh_OnNavMeshPreUpdateMethods>::ctor(this, object, method);
109 this
110 }
111}
112
113#[cfg(feature = "unity_engine-ai-navmesh")]
114impl NavMesh {
115 #[doc = "`Internal_CallOnNavMeshPreUpdate()` overload"]
116 pub fn internal_call_on_nav_mesh_pre_update() -> () {
117 unsafe {
118 ::unity::il2cpp_call!((::unity::module_base()+0x3f43180usize)as*mut u8,();
119 )
120 }
121 }
122
123 #[doc = "`CalculatePath(crate::unity_engine::vector3::Vector3, crate::unity_engine::vector3::Vector3, i32, crate::unity_engine::ai::navmeshpath::NavMeshPath)` overload"]
124 pub fn calculate_path(
125 source_position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
126 target_position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
127 area_mask: impl ::core::convert::Into<i32>,
128 path: impl ::core::convert::Into<crate::unity_engine::ai::navmeshpath::NavMeshPath>,
129 ) -> bool {
130 unsafe {
131 ::unity::il2cpp_call!((::unity::module_base()+0x3f433f0usize)as*mut u8,bool;
132(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(source_position),(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(target_position),(i32)::core::convert::Into::into(area_mask),(crate::unity_engine::ai::navmeshpath::NavMeshPath)::core::convert::Into::into(path))
133 }
134 }
135
136 #[doc = "`CalculatePathInternal(crate::unity_engine::vector3::Vector3, crate::unity_engine::vector3::Vector3, i32, crate::unity_engine::ai::navmeshpath::NavMeshPath)` overload"]
137 pub fn calculate_path_internal(
138 source_position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
139 target_position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
140 area_mask: impl ::core::convert::Into<i32>,
141 path: impl ::core::convert::Into<crate::unity_engine::ai::navmeshpath::NavMeshPath>,
142 ) -> bool {
143 unsafe {
144 ::unity::il2cpp_call!((::unity::module_base()+0x3f43520usize)as*mut u8,bool;
145(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(source_position),(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(target_position),(i32)::core::convert::Into::into(area_mask),(crate::unity_engine::ai::navmeshpath::NavMeshPath)::core::convert::Into::into(path))
146 }
147 }
148
149 #[doc = "`SamplePosition(crate::unity_engine::vector3::Vector3, *mutcrate::unity_engine::ai::navmeshhit::NavMeshHit, f32, i32)` overload"]
150 pub fn sample_position(
151 source_position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
152 max_distance: impl ::core::convert::Into<f32>,
153 area_mask: impl ::core::convert::Into<i32>,
154 ) -> (bool, crate::unity_engine::ai::navmeshhit::NavMeshHit) {
155 unsafe {
156 let mut __out_0 = ::core::mem::MaybeUninit::<crate::unity_engine::ai::navmeshhit::NavMeshHit>::uninit();
157 let __ret = {
158 ::unity::il2cpp_call!((::unity::module_base()+0x3f43610usize)as*mut u8,bool;
159(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(source_position),(*mut crate::unity_engine::ai::navmeshhit::NavMeshHit)__out_0.as_mut_ptr(),(f32)::core::convert::Into::into(max_distance),(i32)::core::convert::Into::into(area_mask))
160 };
161 (__ret, __out_0.assume_init())
162 }
163 }
164
165 #[doc = "`CalculatePathInternal_Injected(*mutcrate::unity_engine::vector3::Vector3, *mutcrate::unity_engine::vector3::Vector3, i32, crate::unity_engine::ai::navmeshpath::NavMeshPath)` overload"]
166 pub fn calculate_path_internal_injected(
167 area_mask: impl ::core::convert::Into<i32>,
168 path: impl ::core::convert::Into<crate::unity_engine::ai::navmeshpath::NavMeshPath>,
169 ) -> (bool, crate::unity_engine::vector3::Vector3, crate::unity_engine::vector3::Vector3) {
170 unsafe {
171 let mut __out_0 = ::core::mem::MaybeUninit::<crate::unity_engine::vector3::Vector3>::uninit();
172 let mut __out_1 = ::core::mem::MaybeUninit::<crate::unity_engine::vector3::Vector3>::uninit();
173 let __ret = {
174 ::unity::il2cpp_call!((::unity::module_base()+0x3f435a0usize)as*mut u8,bool;
175(*mut crate::unity_engine::vector3::Vector3)__out_0.as_mut_ptr(),(*mut crate::unity_engine::vector3::Vector3)__out_1.as_mut_ptr(),(i32)::core::convert::Into::into(area_mask),(crate::unity_engine::ai::navmeshpath::NavMeshPath)::core::convert::Into::into(path))
176 };
177 (__ret, __out_0.assume_init(), __out_1.assume_init())
178 }
179 }
180
181 #[doc = "`SamplePosition_Injected(*mutcrate::unity_engine::vector3::Vector3, *mutcrate::unity_engine::ai::navmeshhit::NavMeshHit, f32, i32)` overload"]
182 pub fn sample_position_injected(
183 max_distance: impl ::core::convert::Into<f32>,
184 area_mask: impl ::core::convert::Into<i32>,
185 ) -> (
186 bool,
187 crate::unity_engine::vector3::Vector3,
188 crate::unity_engine::ai::navmeshhit::NavMeshHit,
189 ) {
190 unsafe {
191 let mut __out_0 = ::core::mem::MaybeUninit::<crate::unity_engine::vector3::Vector3>::uninit();
192 let mut __out_1 = ::core::mem::MaybeUninit::<crate::unity_engine::ai::navmeshhit::NavMeshHit>::uninit();
193 let __ret = {
194 ::unity::il2cpp_call!((::unity::module_base()+0x3f43690usize)as*mut u8,bool;
195(*mut crate::unity_engine::vector3::Vector3)__out_0.as_mut_ptr(),(*mut crate::unity_engine::ai::navmeshhit::NavMeshHit)__out_1.as_mut_ptr(),(f32)::core::convert::Into::into(max_distance),(i32)::core::convert::Into::into(area_mask))
196 };
197 (__ret, __out_0.assume_init(), __out_1.assume_init())
198 }
199 }
200}
201
202#[cfg(feature = "unity_engine-ai-navmesh")]
203impl NavMesh {
204 pub fn internal_call_on_nav_mesh_pre_update_method_info() -> &'static ::unity::il2cpp::MethodInfo {
205 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
206 }
207
208 pub fn calculate_path_method_info() -> &'static ::unity::il2cpp::MethodInfo {
209 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
210 }
211
212 pub fn calculate_path_internal_method_info() -> &'static ::unity::il2cpp::MethodInfo {
213 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[2]
214 }
215
216 pub fn sample_position_method_info() -> &'static ::unity::il2cpp::MethodInfo {
217 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[3]
218 }
219
220 pub fn calculate_path_internal_injected_method_info() -> &'static ::unity::il2cpp::MethodInfo {
221 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[4]
222 }
223
224 pub fn sample_position_injected_method_info() -> &'static ::unity::il2cpp::MethodInfo {
225 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[5]
226 }
227}
228
229#[cfg(feature = "unity_engine-ai-navmesh")]
230#[doc(hidden)]
231pub mod prelude {
232 pub use super::{INavMesh, INavMesh_OnNavMeshPreUpdate, INavMesh_OnNavMeshPreUpdateMethods, NavMesh, NavMesh_OnNavMeshPreUpdate};
233 #[cfg(feature = "system-delegate")]
234 pub use crate::system::delegate::IDelegateMethods;
235 #[cfg(feature = "system-multicastdelegate")]
236 pub use crate::system::multicastdelegate::IMulticastDelegateMethods;
237 #[cfg(feature = "system-object")]
238 pub use crate::system::object::IObjectMethods;
239 pub use crate::system::{delegate::IDelegate, multicastdelegate::IMulticastDelegate, object::IObject};
240}