{"id":4123,"date":"2024-03-30T01:38:27","date_gmt":"2024-03-29T17:38:27","guid":{"rendered":"https:\/\/lonelinerd.com\/?p=4123"},"modified":"2024-03-30T02:02:45","modified_gmt":"2024-03-29T18:02:45","slug":"ue5_ai_perception_sense","status":"publish","type":"post","link":"https:\/\/lonelinerd.com\/index.php\/2024\/03\/30\/ue5_ai_perception_sense\/","title":{"rendered":"[C++\/UE] UE5\u4e2dAI\u958b\u767c\u7684\u4e00\u9ede\u529f\u80fd\u68b3\u7406\uff08\u4e94\uff09 \u2013 AI Perception \u611f\u77e5\u7cfb\u7d71 Sense\u90e8\u5206"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"4123\" class=\"elementor elementor-4123\">\n\t\t\t\t\t\t<div class=\"elementor-inner\">\n\t\t\t\t<div class=\"elementor-section-wrap\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-59510f2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"59510f2\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5f22643\" data-id=\"5f22643\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3a95985 elementor-widget elementor-widget-text-editor\" data-id=\"3a95985\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h3><span style=\"text-decoration: underline;\"><strong>\u611f\u77e5\u7cfb\u7d71AI Perception<\/strong><\/span><\/h3><ul><li>\u4f7f\u7528\u7684AI Controller -&gt; Add Component<ul><li>AIPerception =&gt; \u523a\u6fc0\u6e90\u63a5\u6536\u5668<\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-aa4f26f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"aa4f26f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-da6be09\" data-id=\"da6be09\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bde783a elementor-widget elementor-widget-image\" data-id=\"bde783a\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"553\" height=\"220\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/AIPerception.png\" class=\"attachment-large size-large wp-image-4126\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/AIPerception.png 553w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/AIPerception-300x119.png 300w\" sizes=\"auto, (max-width: 553px) 100vw, 553px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f239a2a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f239a2a\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c49b642\" data-id=\"c49b642\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-469b6a3 elementor-widget elementor-widget-text-editor\" data-id=\"469b6a3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<ul><li>AIPerception Stimuli Source =&gt; \u523a\u6fc0\u6e90\u767c\u751f\u5668<ul><li>\u5728\u975eAI Actor\u4e0a\u6dfb\u52a0\u4e26\u6ce8\u518a\u5c0d\u61c9\u4e8b\u4ef6\uff0c\u5f9e\u800c\u88abAI\u6240\u300c\u611f\u77e5\u300d\u5230<ul><li>\u589e\u52a0\u5177\u9ad4\u8981\u88ab\u54ea\u4e9b\u611f\u5b98\u6240\u80fd\u611f\u77e5\u5230<\/li><\/ul><\/li><li>\u6240\u6709Pawn\u90fd\u6703\u9ed8\u8a8d\u52a0\u4e0aSight\uff0c\u6240\u4ee5\u591a\u7528\u65bc\u6dfb\u52a0\u5176\u4ed6\u985e\u578b\u7684\u523a\u6fc0\u6216\u8005\u975ePawn\u7684Actor\u4e5f\u80fd\u767c\u751f\u523a\u6fc0\u7684\u5834\u666f\u4e0a<\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-cf3a63f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"cf3a63f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-357f7a6\" data-id=\"357f7a6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1be4ff9 elementor-widget elementor-widget-image\" data-id=\"1be4ff9\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"336\" height=\"141\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/AIStimulis.png\" class=\"attachment-large size-large wp-image-4141\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/AIStimulis.png 336w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/AIStimulis-300x126.png 300w\" sizes=\"auto, (max-width: 336px) 100vw, 336px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c9dce96 elementor-widget elementor-widget-image\" data-id=\"c9dce96\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"553\" height=\"298\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/AIStimulis2.png\" class=\"attachment-large size-large wp-image-4142\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/AIStimulis2.png 553w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/AIStimulis2-300x162.png 300w\" sizes=\"auto, (max-width: 553px) 100vw, 553px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3097ada elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3097ada\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2898c6b\" data-id=\"2898c6b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2205395 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"2205395\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-85d0db8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"85d0db8\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c89061a\" data-id=\"c89061a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a2c36da elementor-widget elementor-widget-text-editor\" data-id=\"a2c36da\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h4><span style=\"text-decoration: underline;\"><strong>AI Perception\u4f7f\u7528\u53ca\u53c3\u6578\u8aaa\u660e<\/strong><\/span><\/h4><ul><li>\u5728AI Perception\u7d44\u4ef6\u4e2d\uff0c\u53ef\u4ee5\u914d\u7f6e\u76f8\u61c9\u7684Sense Config\u9805<\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c6a5f12 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c6a5f12\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6388a02\" data-id=\"6388a02\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4532460 elementor-widget elementor-widget-image\" data-id=\"4532460\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"501\" height=\"221\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/SenseConfig.png\" class=\"attachment-large size-large wp-image-4127\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/SenseConfig.png 501w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/SenseConfig-300x132.png 300w\" sizes=\"auto, (max-width: 501px) 100vw, 501px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-877d183 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"877d183\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f1d54a9\" data-id=\"f1d54a9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-60ec8a1 elementor-widget elementor-widget-text-editor\" data-id=\"60ec8a1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h5><span style=\"text-decoration: underline;\"><strong>Sight \u8996\u89ba\u611f\u77e5<\/strong><\/span><\/h5><ul><li>Detection by Affiliation \u6c7a\u5b9a\u8ab0\u80fd\u89f8\u767c\u4e8b\u4ef6\uff08\u6575\u4eba\/\u8def\u4eba\/\u53cb\u8ecd\uff09<ul><li>Affiliation\u76ee\u524d\u53ea\u80fd\u5728C++\u88e1\u5b9a\u7fa9<\/li><li>\u5728blueprint\u88e1\u53ef\u4ee5\u52fe\u4e0aDectect Neutrals\uff08\u8def\u4eba\uff09\u4f86\u6aa2\u6e2c\u6240\u6709Actor<\/li><\/ul><\/li><li>Auto Success Range from Last Seen Location \u5c0d\u8c61\u5fc5\u7136\u6703\u88ab\u91cd\u65b0\u770b\u898b\u7684\u8ddd\u96e2<ul><li>if value &gt; 0\uff0c\u5c0d\u8c61\u5982\u679c\u96e2\u4e0a\u6b21\u88ab\u770b\u898b\u7684\u8ddd\u96e2 &lt; value\uff0c\u5247\u4ecd\u7136\u7b97\u662f\u88ab\u770b\u898b<\/li><li>if value &lt; 0\uff0c\u6bcf\u6b21\u5931\u8e64\u5f8c\u90fd\u8981\u91cd\u65b0\u505a\u4e00\u6b21\u5b8c\u6574\u7684\u8996\u89ba\u611f\u77e5<\/li><li>\u4f8b\u5b50\uff1a\u89e3\u6c7a\u6050\u6016\u904a\u6232\u7684\u7576\u9762\u5165\u6ac3\u60c5\u6cc1<\/li><\/ul><\/li><li>\u5177\u9ad4\u8996\u91ce\u8a08\u7b97<ul><li>Sight Radius \/ Lose Sight Radius \u8996\u91ce\/ \u5931\u8e64\u8ddd\u96e2\uff0c\u6703\u88ab\u8f49\u5316\u6210Square\u503c<\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0abe482 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0abe482\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fe828f2\" data-id=\"fe828f2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5bde3a1 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"5bde3a1\" data-element_type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-cpp'>\/\/AISense_Sight.cpp\r\nUAISense_Sight::FDigestedSightProperties::FDigestedSightProperties(const UAISenseConfig_Sight&amp; SenseConfig)\r\n{\r\n    SightRadiusSq = FMath::Square(SenseConfig.SightRadius + SenseConfig.PointOfViewBackwardOffset);\r\n    LoseSightRadiusSq = FMath::Square(SenseConfig.LoseSightRadius + SenseConfig.PointOfViewBackwardOffset);\r\n}\r\n<\/code><\/pre>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5bfb75e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5bfb75e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-96f6cf2\" data-id=\"96f6cf2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d314bf6 elementor-widget elementor-widget-text-editor\" data-id=\"d314bf6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<ul><li style=\"list-style-type: none;\"><ul><li>Peripheral Vision Half Angle Degrees \u53ef\u8996\u7bc4\u570d\u7684\u534a\u89d2\uff0c\u6703\u88ab\u8f49\u6210\u5f27\u5ea6\u52a0\u5165\u8a08\u7b97<\/li><li>Point of View Backward Offset \u5982\u679c\u4e0d\u63a5\u8fd1\u65bc0\uff0c\u5c31\u6703\u7528\u4f86\u8abf\u6574\u8996\u91ce\u7684\u8d77\u9ede\u4f4d\u7f6e<ul><li>== 0\uff1a\u8d77\u9ede\u4f4d\u7f6e = AI\u81ea\u8eab\u7684\u4f4d\u7f6e<\/li><li>!= 0\uff1a\u8d77\u9ede\u4f4d\u7f6e = \u6b63\u5f8c\u65b9\u65b9\u5411normalized * Point of View Backward Offset<\/li><\/ul><\/li><li>Near clipping Radius\uff1a\u5f9e\u65b0\u8d77\u9ede\u8a08\u7b97\u7684\u8fd1\u5e73\u9762\u534a\u5f91\uff0c\u6703\u88ab\u8f49\u5316\u70baSquare\u503c<\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dc5528e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dc5528e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-17733a3\" data-id=\"17733a3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a2d9960 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"a2d9960\" data-element_type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-cpp'>\/\/AISense_Sight.cpp\r\nUAISense_Sight::FDigestedSightProperties::FDigestedSightProperties(const UAISenseConfig_Sight&amp; SenseConfig)\r\n{\r\n    NearClippingRadiusSq = FMath::Square(SenseConfig.NearClippingRadius);\r\n}<\/code><\/pre>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-46e643e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"46e643e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9d5f6d8\" data-id=\"9d5f6d8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8e753c6 elementor-widget elementor-widget-text-editor\" data-id=\"8e753c6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<ul><li style=\"list-style-type: none;\"><ul><li>\u5177\u9ad4\u8996\u91ce\u793a\u610f\u5716\u5982\u4e0b\uff08\u8996\u91ce\u6aa2\u6e2c\u6703\u8abf\u7528CheckIsTargetInSightCone\uff09\uff1a<\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dee7cb5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dee7cb5\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-87a433a\" data-id=\"87a433a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-055baa8 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"055baa8\" data-element_type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-cpp'>\/\/AIHelpers.cpp\r\n\/\/----------------------------------------------------------------------\/\/\r\n\/\/ CheckIsTargetInSightCone\r\n\/\/                     F\r\n\/\/                   *****  \r\n\/\/              *             *\r\n\/\/          *                     *\r\n\/\/       *                           *\r\n\/\/     *                               *\r\n\/\/   *                                   * \r\n\/\/    \\                                 \/\r\n\/\/     \\                               \/\r\n\/\/      \\                             \/\r\n\/\/       \\             X             \/\r\n\/\/        \\                         \/\r\n\/\/         \\          ***          \/\r\n\/\/          \\     *    N    *     \/\r\n\/\/           \\ *               * \/\r\n\/\/            N                 N\r\n\/\/            \r\n\/\/           \r\n\/\/           \r\n\/\/           \r\n\/\/\r\n\/\/ \r\n\/\/                     B \r\n\/\/\r\n\/\/ X = StartLocation\r\n\/\/ B = Backward offset\r\n\/\/ N = Near Clipping Radius (from the StartLocation adjusted by Backward offset)\r\n\/\/ F = Far Clipping Radius (from the StartLocation adjusted by Backward offset)\r\n\/\/----------------------------------------------------------------------\/\/\r\nbool CheckIsTargetInSightCone(const FVector&amp; StartLocation, const FVector&amp; ConeDirectionNormal, float PeripheralVisionAngleCos,\r\n    float ConeDirectionBackwardOffset, float NearClippingRadiusSq, float const FarClippingRadiusSq, const FVector&amp; TargetLocation)\r\n{\r\n    const FVector BaseLocation = FMath::IsNearlyZero(ConeDirectionBackwardOffset) ? StartLocation : StartLocation - ConeDirectionNormal * ConeDirectionBackwardOffset;\r\n    const FVector ActorToTarget = TargetLocation - BaseLocation;\r\n    const FVector::FReal DistToTargetSq = ActorToTarget.SizeSquared();\r\n    if (DistToTargetSq &lt;= FarClippingRadiusSq &amp;&amp; DistToTargetSq &gt;= NearClippingRadiusSq)\r\n    {\r\n        \/\/ Will return true if squared distance to Target is smaller than SMALL_NUMBER\r\n        if (DistToTargetSq &lt; SMALL_NUMBER)\r\n        {\r\n            return true;\r\n        }\r\n        \r\n        \/\/ Calculate the normal here instead of calling GetUnsafeNormal as we already have the DistToTargetSq (optim)\r\n        const FVector DirectionToTargetNormal = ActorToTarget * FMath::InvSqrt(DistToTargetSq);\r\n\r\n        return FVector::DotProduct(DirectionToTargetNormal, ConeDirectionNormal) &gt; PeripheralVisionAngleCos;\r\n    }\r\n\r\n    return false;\r\n}\r\n\r\n\/\/AISense_Sight.cpp\r\nUAISense_Sight::EVisibilityResult UAISense_Sight::ComputeVisibility(UWorld* World, FAISightQuery&amp; SightQuery, FPerceptionListener&amp; Listener, const AActor* ListenerActor, FAISightTarget&amp; Target, AActor* TargetActor, const FDigestedSightProperties&amp; PropDigest, float&amp; OutStimulusStrength, FVector&amp; OutSeenLocation, int32&amp; OutNumberOfLoSChecksPerformed, int32&amp; OutNumberOfAsyncLosCheckRequested) const\r\n{\r\n    \/\/...\r\n    const FVector TargetLocation = TargetActor-&gt;GetActorLocation();\r\n    const float SightRadiusSq = SightQuery.GetLastResult() ? PropDigest.LoseSightRadiusSq : PropDigest.SightRadiusSq;\r\n    if (!FAISystem::CheckIsTargetInSightCone(Listener.CachedLocation, Listener.CachedDirection, PropDigest.PeripheralVisionAngleCos, PropDigest.PointOfViewBackwardOffset, PropDigest.NearClippingRadiusSq, SightRadiusSq, TargetLocation))\r\n    {\r\n        return EVisibilityResult::NotVisible;\r\n    }\r\n    \/\/...\r\n}\r\n<\/code><\/pre>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f22e1e8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f22e1e8\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-363d658\" data-id=\"363d658\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5ab99f4 elementor-widget elementor-widget-text-editor\" data-id=\"5ab99f4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h5><span style=\"text-decoration: underline;\"><strong>Hearing \u807d\u89ba\u611f\u77e5<\/strong><\/span><\/h5><ul><li>\u97ff\u61c9Report Noise Event<ul><li>blueprint\u88e1\u53ef\u4ee5\u62d6\u51fa\u76f8\u95dc\u7bc0\u9ede<\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1849e84 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1849e84\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-55d918f\" data-id=\"55d918f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0af88a6 elementor-widget elementor-widget-image\" data-id=\"0af88a6\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"403\" height=\"232\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/NoiseEvent.png\" class=\"attachment-large size-large wp-image-4128\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/NoiseEvent.png 403w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/NoiseEvent-300x173.png 300w\" sizes=\"auto, (max-width: 403px) 100vw, 403px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7fb8dd0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7fb8dd0\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9be9c86\" data-id=\"9be9c86\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6848df8 elementor-widget elementor-widget-text-editor\" data-id=\"6848df8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<ul><li style=\"list-style-type: none;\"><ul><li>Hearing Range \u807d\u89ba\u8ddd\u96e2<\/li><li>Detection by Affiliation \u6c7a\u5b9a\u8ab0\u80fd\u89f8\u767c\u4e8b\u4ef6\uff08\u6575\u4eba\/\u8def\u4eba\/\u53cb\u8ecd\uff09<ul><li>Affiliation\u76ee\u524d\u53ea\u80fd\u5728C++\u88e1\u5b9a\u7fa9<\/li><li>\u5728blueprint\u88e1\u53ef\u4ee5\u52fe\u4e0aDectect Neutrals\uff08\u8def\u4eba\uff09\u4f86\u6aa2\u6e2c\u6240\u6709Actor<\/li><\/ul><\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7a39270 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7a39270\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7cd17d6\" data-id=\"7cd17d6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-85589fe elementor-widget elementor-widget-text-editor\" data-id=\"85589fe\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h5><span style=\"text-decoration: underline;\"><strong>Touch \u63a5\u89f8\u611f\u77e5<\/strong><\/span><\/h5><ul><li>\u61c9\u5728\u88ab\u751a\u9ebc\u78b0\u5230\/\u78b0\u5230\u751a\u9ebc\u6642\u89f8\u767c<\/li><li>\u97ff\u61c9Report Touch Event<ul><li>blueprint\u88e1\u53ef\u4ee5\u62d6\u51fa\u76f8\u95dc\u7bc0\u9ede<\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ebb7091 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ebb7091\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d6e6bd7\" data-id=\"d6e6bd7\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-da3aaab elementor-widget elementor-widget-image\" data-id=\"da3aaab\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"436\" height=\"240\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/TouchEvent.png\" class=\"attachment-large size-large wp-image-4129\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/TouchEvent.png 436w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/TouchEvent-300x165.png 300w\" sizes=\"auto, (max-width: 436px) 100vw, 436px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2752510 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2752510\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8d5891b\" data-id=\"8d5891b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-808cea8 elementor-widget elementor-widget-text-editor\" data-id=\"808cea8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h5><span style=\"text-decoration: underline;\"><strong>Team Sense \u968a\u53cb\u611f\u77e5<\/strong><\/span><\/h5><ul><li>\u540c\u9663\u71df\u63a5\u8fd1\u7684\u6642\u5019\u6703\u901a\u77e5<ul><li>\u9700\u8981\u914d\u5408C++\u98df\u7528<\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-71827ce elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"71827ce\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fec2841\" data-id=\"fec2841\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0d0ca14 elementor-widget elementor-widget-text-editor\" data-id=\"0d0ca14\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h5><span style=\"text-decoration: underline;\"><strong>AI Prediction Sense \u9810\u6e2c\u611f\u77e5<\/strong><\/span><\/h5><ul><li>\u76ee\u7684\u662f\u70ba\u4e86\u8b93AI\u767c\u73fe\u73a9\u5bb6\u5f8c\uff0c\u5728\u8ddf\u8e64\u7684\u904e\u7a0b\u4e2d\u8ddf\u4e1f\u4e4b\u5f8c\uff0c\u4f9d\u7136\u6703\u5c0d\u73a9\u5bb6\u7684\u53ef\u80fd\u79fb\u52d5\u7d50\u679c\u9032\u884c\u4e00\u500b\u4ee5\u6642\u9593\u70ba\u55ae\u4f4d\u7684\u63a8\u7b97\uff0c\u4e26\u5f97\u51fa\u4e00\u500b\u65b0\u7684\u76ee\u6a19\u4f4d\u7f6e<ul><li>\u9700\u8981\u914d\u5408\u5176\u4ed6Sense\u4f7f\u7528\uff0c\u5982\u4ee5\u4e0b\u8996\u91ce\u6aa2\u6e2c\uff1a<\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2a5abb0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2a5abb0\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9692c96\" data-id=\"9692c96\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-992f140 elementor-widget elementor-widget-image\" data-id=\"992f140\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"553\" height=\"284\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/PredictionEvent.png\" class=\"attachment-large size-large wp-image-4130\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/PredictionEvent.png 553w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/PredictionEvent-300x154.png 300w\" sizes=\"auto, (max-width: 553px) 100vw, 553px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b4454f2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b4454f2\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6343bfc\" data-id=\"6343bfc\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3e1a2e9 elementor-widget elementor-widget-text-editor\" data-id=\"3e1a2e9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<ul><li>\u7576Stimulus Successfully Sensed\u70bafalse\u6642\uff08\u770b\u4e0d\u898b\u4e86\uff09\uff0c\u63a5\u5165Request Pawn\/Character Prediction Event\u7bc0\u9ede\uff0c\u8acb\u6c42\u505a\u4e00\u6b21Prediction Sense<\/li><li>\u7136\u5f8c\u6703\u89f8\u767cPerception Update\u4e8b\u4ef6\uff0c\u518d\u5728\u8a72\u4e8b\u4ef6\u88e1\u589e\u52a0\u5c0dPrediction Sense\u7684\u8655\u7406<\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-124525d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"124525d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-27d39a1\" data-id=\"27d39a1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a1910ab elementor-widget elementor-widget-image\" data-id=\"a1910ab\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"529\" height=\"328\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/PredictionEvent_2.png\" class=\"attachment-large size-large wp-image-4131\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/PredictionEvent_2.png 529w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/PredictionEvent_2-300x186.png 300w\" sizes=\"auto, (max-width: 529px) 100vw, 529px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-487b8b3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"487b8b3\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b6e76cc\" data-id=\"b6e76cc\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-834ffc6 elementor-widget elementor-widget-text-editor\" data-id=\"834ffc6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h5><strong><span style=\"text-decoration: underline;\">Damage Sense \u50b7\u5bb3\u611f\u77e5<\/span><\/strong><\/h5><ul><li>\u97ff\u61c9 Report Damage Event \/ Apply Any Damage \/ Apply Radial Damage \/ Apply Point Damage<ul><li>blueprint\u88e1\u53ef\u4ee5\u62d6\u51fa\u76f8\u95dc\u7bc0\u9ede<\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-52d2452 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"52d2452\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e092f26\" data-id=\"e092f26\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a3df188 elementor-widget elementor-widget-image\" data-id=\"a3df188\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"553\" height=\"359\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/DamageEvent.png\" class=\"attachment-large size-large wp-image-4132\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/DamageEvent.png 553w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/DamageEvent-300x195.png 300w\" sizes=\"auto, (max-width: 553px) 100vw, 553px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-847ddad elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"847ddad\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d6757b4\" data-id=\"d6757b4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-383dad6 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"383dad6\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3f42c79 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3f42c79\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c8161d9\" data-id=\"c8161d9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d3925d1 elementor-widget elementor-widget-text-editor\" data-id=\"d3925d1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h4><span style=\"text-decoration: underline;\"><strong>\u5171\u540c\u53c3\u6578<\/strong><\/span><\/h4><ul><li>Dominant Sense =&gt; \u6700\u512a\u5148\u611f\u77e5\uff0c\u61c9\u8a72\u662f\u5df2\u914d\u7f6e\u7684\u611f\u77e5\u5176\u4e2d\u4e4b\u4e00<\/li><li>StartsEnabled\uff1a\u8a72\u611f\u77e5\u662f\u5426\u8981\u624b\u52d5\u555f\u52d5\uff0ctrue\u70ba\u4e0d\u9700\u8981<ul><li>\u624b\u52d5\u555f\u52d5\u6d41\u7a0b\uff1a\u8abf\u7528SetSenseEnabled\uff0c\u6307\u5b9a\u5177\u9ad4\u7684Sense Class<\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-66ffea8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"66ffea8\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2ca79f3\" data-id=\"2ca79f3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8d19479 elementor-widget elementor-widget-image\" data-id=\"8d19479\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"374\" height=\"249\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/SetSenseEnable.png\" class=\"attachment-large size-large wp-image-4133\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/SetSenseEnable.png 374w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/SetSenseEnable-300x200.png 300w\" sizes=\"auto, (max-width: 374px) 100vw, 374px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4062524 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4062524\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-42e8643\" data-id=\"42e8643\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7e77be7 elementor-widget elementor-widget-text-editor\" data-id=\"7e77be7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<ul><li>MaxAge\uff1a\u611f\u77e5\u6301\u7e8c\u6642\u9593\uff0c0\u4ee3\u8868\u6c38\u4e45\u6301\u7e8c<ul><li>\u55ae\u4f4d\u662f\u79d2<\/li><li>Age\u6703\u6bcf\u5e40\u6309\u4e00\u5b9a\u7684\u589e\u9577\u7387\u905e\u589e\uff0c\u4e00\u65e6 Age &gt;= MaxAge\uff08ExpirationAge\uff09\uff0c\u611f\u77e5\u5c31\u6703\u300c\u904e\u671f\u300d<\/li><li>\u589e\u9577\u7387\u53ef\u4ee5\u5728UAIPerceptionSystem\u7684\u521d\u59cb\u5316\u5217\u8868\u88e1\u4fee\u6539<\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fbe6368 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fbe6368\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-997e283\" data-id=\"997e283\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a1c6bf5 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"a1c6bf5\" data-element_type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-cpp'>\/\/AIPerceptionSystem\r\nUAIPerceptionSystem::UAIPerceptionSystem(const FObjectInitializer&amp; ObjectInitializer)\r\n    : Super(ObjectInitializer)\r\n    , PerceptionAgingRate(0.3f)\r\n    , bHandlePawnNotification(false)\r\n    , NextStimuliAgingTick(0.)\r\n    , CurrentTime(0.)\r\n{\r\n    StimuliSourceEndPlayDelegate.BindDynamic(this, &amp;UAIPerceptionSystem::OnPerceptionStimuliSourceEndPlay);\r\n}\r\n\r\nvoid UAIPerceptionSystem::Tick(float DeltaSeconds)\r\n{\r\n    SCOPE_CYCLE_COUNTER(STAT_AI_PerceptionSys);\r\n    SCOPE_CYCLE_COUNTER(STAT_AI_Overall);\r\n    CSV_SCOPED_TIMING_STAT_EXCLUSIVE(AIPerception);\r\n    \/\/ if no new stimuli\r\n    \/\/ and it's not time to remove stimuli from &quot;know events&quot;\r\n\r\n    UWorld* World = GEngine-&gt;GetWorldFromContextObjectChecked(GetOuter());\r\n    check(World);\r\n\r\n    if (World-&gt;bPlayersOnly == false)\r\n    {\r\n        \/\/ cache it\r\n        CurrentTime = World-&gt;GetTimeSeconds();      \r\n        if (SourcesToRegister.Num() &gt; 0)\r\n        {\r\n            PerformSourceRegistration();\r\n        }\r\n        bool bSomeListenersNeedUpdateDueToStimuliAging = false;\r\n        if (NextStimuliAgingTick &lt;= CurrentTime)\r\n        {\r\n            constexpr double Precision = 1.\/64.;\r\n            const float AgingDt = FloatCastChecked&lt;float&gt;(CurrentTime - NextStimuliAgingTick, Precision);\r\n            bSomeListenersNeedUpdateDueToStimuliAging = AgeStimuli(PerceptionAgingRate + AgingDt);\r\n            NextStimuliAgingTick = CurrentTime + PerceptionAgingRate;\r\n        }\r\n        \/\/...\r\n    }\r\n}\r\n\r\nbool UAIPerceptionSystem::AgeStimuli(const float Amount)\r\n{\r\n    ensure(Amount &gt;= 0.f);\r\n    bool bTagged = false;\r\n\r\n    for (AIPerception::FListenerMap::TIterator ListenerIt(ListenerContainer); ListenerIt; ++ListenerIt)\r\n    {\r\n        FPerceptionListener&amp; Listener = ListenerIt-&gt;Value;\r\n        if (Listener.Listener.IsValid())\r\n        {\r\n            \/\/ AgeStimuli will return true if this listener requires an update after stimuli aging\r\n            if (Listener.Listener-&gt;AgeStimuli(Amount))\r\n            {\r\n                Listener.MarkForStimulusProcessing();\r\n                bTagged = true;\r\n            }\r\n        }\r\n    }\r\n    return bTagged;\r\n}\r\n\r\n\/\/AIPerceptionComponent.cpp\r\nbool UAIPerceptionComponent::AgeStimuli(const float ConstPerceptionAgingRate)\r\n{\r\n    bool bExpiredStimuli = false;\r\n\r\n    for (FActorPerceptionContainer::TIterator It(PerceptualData); It; ++It)\r\n    {\r\n        FActorPerceptionInfo&amp; ActorPerceptionInfo = It-&gt;Value;\r\n\r\n        for (FAIStimulus&amp; Stimulus : ActorPerceptionInfo.LastSensedStimuli)\r\n        {\r\n            \/\/ Age the stimulus. If it is active but has just expired, mark it as such\r\n            if (Stimulus.AgeStimulus(ConstPerceptionAgingRate) == false\r\n                &amp;&amp; (Stimulus.IsActive() || Stimulus.WantsToNotifyOnlyOnPerceptionChange())\r\n                &amp;&amp; Stimulus.IsExpired() == false)\r\n            {\r\n                AActor* TargetActor = ActorPerceptionInfo.Target.Get();\r\n                if (TargetActor)\r\n                {\r\n                    Stimulus.MarkExpired();\r\n                    RegisterStimulus(TargetActor, Stimulus);\r\n                    bExpiredStimuli = true;\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    return bExpiredStimuli;\r\n}\r\n\r\n\/\/AIPerceptionTypes.h\r\n\/** @return false when this stimulus is no longer valid, when it is Expired *\/\r\nFORCEINLINE bool AgeStimulus(float ConstPerceptionAgingRate) \r\n{ \r\n    Age += ConstPerceptionAgingRate; \r\n    return Age &lt; ExpirationAge;\r\n}\r\n<\/code><\/pre>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5ab2623 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5ab2623\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-615b6f3\" data-id=\"615b6f3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e63674f elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"e63674f\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u672c\u7bc7\u70baUE AI\u7cfb\u5217\u7684\u7b2c\u4e94\u90e8\u5206\uff1aAI Perception\u611f\u77e5\u7cfb\u7d71\u7684Sense\u90e8\u5206<\/p>\n","protected":false},"author":1,"featured_media":4068,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,17],"tags":[],"class_list":["post-4123","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming-notes","category-devnotes"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/FeatureCover_Unreal5ArtificialIntelligence.png","_links":{"self":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/4123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/comments?post=4123"}],"version-history":[{"count":8,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/4123\/revisions"}],"predecessor-version":[{"id":4145,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/4123\/revisions\/4145"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/media\/4068"}],"wp:attachment":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/media?parent=4123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/categories?post=4123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/tags?post=4123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}