高德地图SDK Android版开发 5 地图交互操作

高德地图SDK Android版开发 5 地图交互操作

  • 前言
  • 控件
    • 控件介绍
    • 接口
      • UiSettings
      • AMapOptions
    • 示例代码
      • Logo
      • 指南针
      • 比例尺
      • 缩放按钮
    • 效果图
  • 地图手势
    • 地图手势方法说明
    • 地图手势开关
      • 指定屏幕中心点的手势操作
    • 地图手势事件
      • 地图点击事件监听接口
      • 地图长按事件监听接口
      • 地图触摸事件监听接口
      • 地图手势识别的回调
  • 地图状态
    • 地图状态类
    • 地图状态构造类
    • 地图状态更新类
    • 改变地图状态接口
      • 地图状态发生变化的监听接口
      • 监听改变地图状态是否执行完成或者被中断的接口
    • 限制地图显示范围和缩放级别
    • 改变地图默认显示区域
  • 地图事件
    • 地图加载完成监听接口

前言

前文介绍了三个主题:创建显示地图;切换地图类型;显示定位。本文重点介绍地图交互操作及相关的类和接口。

  • 高德地图支持多种地图交互操作,用户可以通过手势或控件进行地图操作,以实现更好的地图浏览体验。另一方面开发者通过代码实现特定业务场景的地图交互。

  • 高德地图通过设定不同的地图状态,来改变地图视野。

  • 最后是不属于地图操作的地图事件,但是也很重要。

    • 比如地图加载完成事件,一些特定接口需要在地图加载完成后才能调用(在显示定位本文均有提及)。

控件

控件介绍

高德地图提供一些基础的地图控件,包括LOGO、指南针、比例尺和缩放按钮和定位按钮。

控件功能默认显示默认位置
LOGO可设置显示相对位置和边距
(左下角,底部居中,右下角)
显示左下角
指南针设置是否显示不显示左上角
比例尺设置是否显示不显示左下角
缩放按钮设置是否显示,可设置显示相对位置
(地图右边居中、地图右下角)
显示右下角
定位按钮设置是否显示不显示右上角

接口

UiSettings

UiSettings 类用于操控地图控件,以定制自己想要的视图效果。UiSettings类中地图控件的接口:

类型方法说明
intgetLogoPosition()获取“高德地图”Logo的位置。
voidsetLogoPosition(int position)设置“高德地图”Logo的位置。
voidsetLogoLeftMargin(int pixels)设置Logo左边界距离屏幕左侧的边距。
voidsetLogoBottomMargin(int pixels)设置Logo下边界距离屏幕底部的边距。
booleanisCompassEnabled()返回指南针控件是否可见。
voidsetCompassEnabled(boolean enabled)设置指南针是否可见。
booleanisScaleControlsEnabled()返回比例尺控件是否可见。
voidsetScaleControlsEnabled(boolean enabled)设置比例尺控件是否可见
booleanisZoomControlsEnabled()返回缩放按钮是否可见。
voidsetZoomControlsEnabled(boolean enabled)设置缩放按钮是否可见。
intgetZoomPosition()获取缩放按钮的位置。
voidsetZoomPosition(int position)设置缩放按钮的位置。
booleanisMyLocationButtonEnabled()返回定位按钮是否可见。
voidsetMyLocationButtonEnabled(boolean enabled)设置定位按钮是否可见。

AMapOptions

AMapOptions中的控件常量:

常量说明
LOGO_POSITION_BOTTOM_LEFTLogo位置(地图左下角)
LOGO_POSITION_BOTTOM_CENTERLogo位置(地图底部居中)
LOGO_POSITION_BOTTOM_RIGHTLogo位置(地图右下角)
LOGO_MARGIN_LEFTLOGO边缘MARGIN(左边)
LOGO_MARGIN_RIGHTLOGO边缘MARGIN(右边)
LOGO_MARGIN_BOTTOMLOGO边缘MARGIN(底部)
ZOOM_POSITION_RIGHT_CENTER缩放按钮位置常量(地图右边居中)
ZOOM_POSITION_RIGHT_BUTTOM缩放按钮位置常量(地图右下角)

示例代码

通过 AMap 类实现UiSettings 类对象的实例化:

UiSettings uiSettings = map.getUiSettings();

Logo

// 获取Logo位置
int position = uiSettings.getLogoPosition();
// 设置Logo位置
position = AMapOptions.LOGO_POSITION_BOTTOM_RIGHT;
uiSettings.setLogoPosition(position);uiSettings.setLogoLeftMargin(10);
uiSettings.setLogoBottomMargin(10);

指南针

// 获取是否允许指南针
// boolean enabled = uiSettings.isCompassEnabled();
// 设置是否允许指南针
uiSettings.setCompassEnabled(true);

比例尺

// 获取比例尺控件是否显示
// boolean isShow = uiSettings.isScaleControlsEnabled();
// 设置是否显示比例尺控件
uiSettings.setScaleControlsEnabled(true);

缩放按钮

// boolean isShow = uiSettings.isZoomControlsEnabled();
// 设置缩放按钮是否可见
uiSettings.setZoomControlsEnabled(true);// int position = uiSettings.getZoomPosition();
int position = AMapOptions.ZOOM_POSITION_RIGHT_CENTER;
uiSettings.setZoomPosition(position);

效果图

在这里插入图片描述

地图手势

提供了多种手势供户与地图之间进行交互,如平移、滑动、缩放、旋转、倾斜。

地图手势方法说明

手势说明状态开关默认
滑动手势1. 可以用手指拖动地图四处滚动(平移)
2. 用手指滑动地图(动画效果)
可禁用或开启开启
缩放手势缩放手势可改变地图的缩放级别。
1. 双击地图可以使缩放级别增加1 (放大);
2. 两个手指捏/拉伸。
可禁用或开启开启
旋转手势可以用两个手指在地图上转动,旋转3D矢量地图可禁用或开启开启
倾斜手势可以在地图上放置两个手指,移动它们一起向下或向上,增加或减小倾斜角可禁用或开启开启
指定屏幕中心点的手势操作在对地图进行手势操作(滑动手势除外)时,可以指定屏幕中心点后执行相应手势。可禁用或开启禁用

地图手势开关

地图手势可以通过UiSetting类提供的接口来控制禁用或启用。

UiSetting类中获取地图手势是否可用的接口:

类型方法说明
booleanisScrollGesturesEnabled()返回拖拽手势是否可用。
booleanisZoomGesturesEnabled()返回缩放手势是否可用。
booleanisRotateGesturesEnabled()返回旋转手势是否可用。
booleanisTiltGesturesEnabled()返回倾斜手势是否可用。
booleanisGestureScaleByMapCenter()返回是否以地图中心点缩放

UiSetting类中设置地图手势是否可用的接口:

类型方法说明
voidsetZoomGesturesEnabled(boolean enabled)设置双指缩放手势是否可用。
voidsetScrollGesturesEnabled(boolean enabled)设置拖拽手势是否可用。
voidsetRotateGesturesEnabled(boolean enabled)设置旋转手势是否可用。
voidsetTiltGesturesEnabled(boolean enabled)设置倾斜手势是否可用。
voidsetGestureScaleByMapCenter(boolean isGestureScaleByMapCenter)设置是否以地图中心点缩放。
注:优先级低于 AMap.setPointToCenter(int x, int y)
voidsetAllGesturesEnabled(boolean enabled)设置所有手势是否可用

指定屏幕中心点的手势操作

在对地图进行手势操作时(滑动手势除外),可以指定屏幕中心点后执行相应手势。

AMap类指定屏幕中心点的方法:

// x、y均为屏幕坐标,屏幕左上角为坐标原点,即(0,0)点。
map.setPointToCenter(x, y);

开启以中心点进行手势操作的方法:

uiSettings.setGestureScaleByMapCenter(true);

地图手势事件

AMap类地图手势事件监听接口:

类型方法说明
voidsetOnMapClickListener(AMap.OnMapClickListener listener)设置地图点击事件监听接口。
voidsetOnMapLongClickListener(AMap.OnMapLongClickListener listener)设置地图长按事件监听接口。
voidsetOnMapTouchListener(AMap.OnMapTouchListener listener)设置地图触摸事件监听接口。
voidsetAMapGestureListener(AMapGestureListener listener)设置手势监听接口

地图点击事件监听接口

// 地图点击事件监听接口
public interface OnMapClickListener {/*** 当用户点击地图时回调此方法,如果点击在某个覆盖物(如marker、polyline)上,且处理了该点击事件,则不会回调此方法。* @param point 用户所点击的地理坐标*/void onMapClick(LatLng point);
}

地图长按事件监听接口

// 地图长按事件监听接口
public interface OnMapLongClickListener {/*** 当用户长按地图时回调此方法,如果长按时触发某一个marker对象的拖动事件,则不会回调此方法。* @param point 用户长按的地理坐标*/void onMapLongClick(LatLng point);
}

地图触摸事件监听接口

// 地图触摸事件监听接口
public interface OnMapTouchListener {/*** 当用户触摸地图时回调此方法* @param motionEvent 触摸事件*/void onTouch(MotionEvent motionEvent);
}

地图手势识别的回调

// 地图手势识别的回调,包含单双击、滑动等以及地图操作地图后稳定下来的回调
public interface AMapGestureListener {/*** 双击* @param x 像素 x坐标* @param y 像素 y坐标*/void onDoubleTap(float x, float y);/*** 单击* @param x 像素 x坐标* @param y 像素 y坐标*/void onSingleTap(float x, float y);/*** 惯性滑动* @param velocityX 惯性滑动的水平速度* @param velocityY 惯性滑动的垂直速度*/void onFling(float velocityX, float velocityY);/*** 滑动* @param distanceX 滑动的水平距离* @param distanceY 滑动的垂直距离*/void onScroll(float distanceX, float distanceY);/*** 长按* @param x 像素 x坐标* @param y 像素 y坐标*/void onLongPress(float x, float y);/*** 按下* @param x 像素 x坐标* @param y 像素 y坐标*/void onDown(float x, float y);/*** 抬起* @param x 像素 x坐标* @param y 像素 y坐标*/void onUp(float x, float y);/*** 地图稳定下来会回到此接口*/void onMapStable();
}

地图状态

地图状态类

CameraPosition类定义了地图的状态,如中心点经纬度,缩放级别,旋转角度,俯视角度等。

类型方法说明
LatLngtarget目标位置的屏幕中心点经纬度坐标。
floatzoom目标可视区域的缩放级别。
floatbearing可视区域指向的方向,以角度为单位,从正北向逆时针方向计算,从0 度到360 度。
floattilt目标可视区域的倾斜度,以角度为单位。
booleanisAbroad该位置是否在国内(此属性不是精确计算,不能用于边界区域)

CameraPosition类中的方法:

类型方法说明
-CameraPosition(LatLng target, float zoom, float tilt, float bearing)构造一个CameraPosition 对象。
static CameraPosition.Builderbuilder()创建一个CameraPosition.Builder 对象
static CameraPosition.Builderbuilder(CameraPosition camera)根据传入的CameraPosition 创建一个CameraPosition.Builder 对象。
static CameraPositionfromLatLngZoom(LatLng target, float zoom)根据传入的经纬度、缩放级别构造一个CameraPosition 对象。

地图状态构造类

CameraPosition.Builder类创建一个摄像机的位置。

类型方法说明
-Builder()构造一个新的CameraPosition对象。
-Builder(CameraPosition previous)根据给定的参数构造一个CameraPosition的新对象。
CameraPosition.Buildertarget(LatLng location)设置目标位置的地图中心点经纬度坐标。
CameraPosition.Builderzoom(float zoom)设置目标可视区域的缩放级别。
CameraPosition.Builderbearing(float bearing)设置可视区域的旋转方向,以角度为单位,正北方向到地图方向逆时针旋转的角度,范围从0度到360度
CameraPosition.Buildertilt(float tilt)设置目标可视区域的倾斜度
CameraPositionbuild()构造一个CameraPosition 对象。

地图状态更新类

CameraUpdate类描述地图状态将要发生的变化。

通过CameraUpdate类构建地图缩放等级、地图显示范围,改变地图中心点等地图更新实例。

类型方法说明
static CameraUpdatechangeBearing(float bearing)设置地图的旋转角度。
static CameraUpdatechangeLatLng(LatLng latLng)设置地图的中心点。
static CameraUpdatechangeTilt(float tilt)设置地图倾斜度。
static CameraUpdatenewCameraPosition(CameraPosition cameraPosition)给地图设置一个新的状态。
static CameraUpdatenewLatLng(LatLng latLng)设置地图的中心点。
static CameraUpdatenewLatLngBounds(LatLngBounds bounds, int padding)设置显示在规定屏幕范围内的地图经纬度范围。
static CameraUpdatenewLatLngBounds(LatLngBounds bounds, int width, int height, int padding)设置显示在规定宽高中的地图经纬度范围。
static CameraUpdatenewLatLngBoundsRect(LatLngBounds latlngbounds, int paddingLeft, int paddingRight, int paddingTop, int paddingBottom)设置显示在规定屏幕范围内的地图经纬度范围。
static CameraUpdatenewLatLngZoom(LatLng latLng, float zoom)设置地图中心点以及缩放级别。
static CameraUpdatescrollBy(float xPixel, float yPixel)按像素移动地图中心点
static CameraUpdatezoomBy(float amount)根据给定增量缩放地图级别,在当前地图显示的级别基础上加上这个增量。
static CameraUpdatezoomBy(float amount, android.graphics.Point focus)根据给定增量并以给定的屏幕像素点为中心点缩放地图级别。
static CameraUpdatezoomIn()放大地图缩放级别,在当前地图显示的级别基础上加1。
static CameraUpdatezoomOut()缩小地图缩放级别,在当前地图显示的级别基础上减1。
static CameraUpdatezoomTo(float zoom)设置地图缩放级别。

改变地图状态接口

AMap类中改变地图状态和设置地图状态监听的接口:

类型方法说明
CameraPositiongetCameraPosition()获取地图的当前状态。
voidmoveCamera(CameraUpdate update)按照传入的CameraUpdate参数改变地图状态。
voidanimateCamera(CameraUpdate update)以动画方式按照传入的CameraUpdate参数更新地图状态,
默认动画耗时250毫秒。
voidanimateCamera(CameraUpdate update, AMap.CancelableCallback cancelableCallback)以动画方式按照传入的CameraUpdate参数更新地图状态,
默认动画耗时250毫秒,
同时设置一个cancelableCallback来监听动画执行的结果。
voidanimateCamera(CameraUpdate update, long durationMs, AMap.CancelableCallback cancelableCallback)按照指定的动画时长及传入的CameraUpdate参数更新地图状态,
同时设置一个cancelableCallback来监听动画执行的结果。
voidsetOnCameraChangeListener(AMap.OnCameraChangeListener listener)设置地图状态的监听接口。

地图状态发生变化的监听接口

// 地图状态发生变化的监听接口
public interface OnCameraChangeListener {/*** 在地图状态改变过程中回调此方法* @param position 一个cameraPosition对象,表示地图的当前状态。*/void onCameraChange(CameraPosition position);/*** 在地图状态改变完成时回调此方法* @param position 一个cameraPosition对象,表示地图的当前状态。*/void onCameraChangeFinish(CameraPosition position);
}

监听改变地图状态是否执行完成或者被中断的接口

// 在AMap.animateCamera(CameraUpdate, CancelableCallback)设置一个CancelableCallback,用来监听该CameraUpdate是否执行完成或者被中断。
public interface CancelableCallback {/*** 当CameraUpdate任务完成时回调此方法。*/void onFinish();/*** 当CameraUpdate任务被中断时回调此方法。*/void onCancel();
}

限制地图显示范围和缩放级别

AMap类中限制地图显示范围的接口:

类型方法说明
voidsetMapStatusLimits(LatLngBounds latLngBounds)设置地图显示范围,无论如何操作地图,显示区域都不能超过该矩形区域。

AMap类中限制缩放级别的接口:

类型方法说明
voidsetMaxZoomLevel(float zoomLevel)设置地图最大缩放级别 缩放级别范围为[3, 20],超出范围将按最大级别计算 。
voidsetMinZoomLevel(float zoomLevel)设置最小缩放级别 缩放级别范围为[3, 20],超出范围将按最小级别计算
floatgetMaxZoomLevel()返回地图可显示最大缩放级别。
floatgetMinZoomLevel()返回地图可显示最小缩放级别。
voidresetMinMaxZoomPreference()重置最小及最大缩放级别 将恢复最小级别为3,最大级别为20 。

改变地图默认显示区域

地图默认显示北京地区,通过采用重载的MapView构造方法更改默认地图显示区域:

MapView mapView = new MapView(this, mapOptions);

代码实现片段:

// 定义北京市经纬度坐标(此处以北京坐标为例)
LatLng centerBJPoint= new LatLng(39.904989,116.405285);
// 定义了一个配置 AMap 对象的参数类
AMapOptions mapOptions = new AMapOptions();
// 设置了一个可视范围的初始化位置
// CameraPosition 第一个参数: 目标位置的屏幕中心点经纬度坐标。
// CameraPosition 第二个参数: 目标可视区域的缩放级别
// CameraPosition 第三个参数: 目标可视区域的倾斜度,以角度为单位。
// CameraPosition 第四个参数: 可视区域指向的方向,以角度为单位,从正北向顺时针方向计算,从0度到360度
mapOptions.camera(new CameraPosition(centerBJPoint, 10f, 0, 0));
// 定义一个 MapView 对象,构造方法中传入 mapOptions 参数类
MapView mapView = new MapView(this, mapOptions);
// 调用 onCreate方法 对 MapView LayoutParams 设置
mapView.onCreate(savedInstanceState);

地图事件

AMap类中加载完成的接口:

类型方法说明
voidsetOnMapLoadedListener(AMap.OnMapLoadedListener listener)设置地图加载完成监听接口

地图加载完成监听接口

// 地图加载完成监听接口
public interface OnMapLoadedListener {/*** 当地图加载完成后回调此方法*/void onMapLoaded();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401683.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 6行代码写北京时间时钟(10帧 可调) 天地良心

今天看到别的大佬用Python写时钟 我密集恐惧症都犯了 十来个定义函数 我看也看不懂 代码还有整整78行 还是在我改良后的 改良前有98行 我删注释 优化函数名(比如把penup改成pu) 这个文件照样有5KB 并且在帧数取决于电脑性能 我运行了一下 电脑都卡出蓝屏了 于是我连夜赶…

云动态摘要 2024-08-12

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 全球加速 GA - 新增“巴西(圣保罗)”、“沙特(利雅得)”接入点 华为云 2024-08-12 全球加速服务新增开通“巴西(圣保罗)”、“沙特&a…

CAN总线-----帧格式

目录 前言 一、CAN总线帧格式分类 1.数据帧(重点) 2.遥控帧 3.错误帧 4.过载帧 5.间隔帧 二、位填充 三、波形实例 前言 本期我们就开始学习CAN总线的帧格式,对应帧格式的话,在前面我们学习I2C协议和SPI协议等协议的时候…

使用功率器件比如MOSFET瞬态热阻曲线计算参数

使用功率器件比如MOSFET瞬态热阻曲线计算参数 1.概述2.查看 ZθJC 图3.使用 ZθJC 图估算结温升4.应用案例5.使用 ZθJC 图估算 MOSFET 峰值电流能力6.应用实例 资料来自网络,仅供学习使用 1.概述 功率 MOSFET 数据表包括归一化瞬态热阻抗图:结至外壳 …

怎么将pdf转为ppt文件?pdf转ppt的8个方法

在诸多职场与学术交流的场合中,我们时常面临将详尽的PDF文件转化为生动且易于编辑的PPT演示文稿的需求。这一转换不仅是为了满足演示时的灵活性,更是为了提升信息传递的效率与观众的理解度。从简单的在线工具到功能全面的专业软件,我们拥有多…

概要设计遇到需求变更,6大应对措施

有效地应对概念设计过程中的需求变更,有助于项目灵活适应市场与用户变化,减少后期调整成本,提升产品竞争力与用户满意度,促进项目顺利推进和高质量交付。未能及时有效应对概念设计中的需求变更,往往会导致项目偏离原定…

“论NoSQL数据库技术及其应用”写作框架,软考高级,系统架构设计师

论文真题 随着互联网web2.0网站的兴起,传统关系数据库在应对web2.0 网站,特别是超大规模和高并发的web2.0纯动态SNS网站上已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展…

[C++] STL (multi)map/(multi)set简介

标题:[C] STL (multi)map/(multi)set简介 水墨不写bug 目录 前言: 一、set简介 1.set简介 2.set的常见用法 二、map简介 1.map简介 2.map使用 三、multiset简介 1.multiset简介 2.multiset使用 四、multimap简介 1.multimap简介 2.multim…

24小时不间断守护:输电线路防山火在线监测装置|防山火利器

24小时不间断守护:输电线路防山火在线监测装置|防山火利器 “一年之计在于秋”虽然传统上强调秋季作为收获与规划的重要时节,但同时也提醒我们,这个季节也伴随着一系列的自然挑战,如火灾风险的增加。针对输电线路而言&#xff0c…

制造业生产管理的困境及MES系统解决方案介绍:盘古信息IMS

在当今竞争激烈的制造业环境中,企业面临着前所未有的生产管理挑战。从计划执行的灵活性不足、过程监控的缺失,到质量控制的挑战、供应链协同的难题,每一个环节都亟需创新与优化。盘古信息MES系统,作为全球领先的制造运营管理工业软…

秋招突击——8/15——知识补充——垃圾回收机制

文章目录 引言正文指针引用可达性分析算法垃圾回收算法标记清除算法标记整理算法复制分代收集 垃圾收集器Serial收集器ParNew并行收集器Parallel Scavenge吞吐量优先收集器Serial Old老年代收集器Parallel old收集器CMS收集器G1收集器(Garbage First垃圾优先&#x…

MySQL:查询(万字超详细版)

💎所属专栏: MySQL 💎1. 单表查询 💎1.1 全列查询和指定列查询 全列查询: select * from exam; 在实际开发中不要使用 * 来进行查询,因为数据库会很大,影响效率 指定列查询: se…

IPC进程间通信

信号 信号是一种终端机制,程序运行到一半的时候接收到了某种通知,程序就会立刻中断运行,转而去处理通知。 登记信号 一个进程只会接收默认的几个信号 如果想要让一个进程接收特定信号的话,必须提前在该进程中登记一下想要接收…

如何进行长截图的两种方法

前言 本文主要讲2种截图方式,分别是谷歌和QQ。 谷歌分为Web端 和 移动端,选一种即可。 第一种:谷歌浏览器控制台自带的 1.先把控制台语言更改为中文,方便查看 ①.按F12,点击设置面板 ②.修改语言为中文并关闭 ③.点击…

2024-08-07升级记录:北斗卫星导航系统轨道信息解释

北斗三号全球星座由地球静止轨道(GEO)、倾斜地球同步轨道(IGSO)、中圆地球轨道(MEO)三种轨道卫星组成,北斗人称这三种卫星为“北斗三兄弟”。 三种轨道区别: 1、GEO卫星 位于距地球约…

MySQL索引的性能优化

1.数据库服务器的优化步骤 在数据库调优中,我们的目标就是响应时间更快,吞吐量更大。利用宏观的监控工具和微观的日志分析可以帮我们快速找到调优的思路和方式 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候,该如何思考呢&#xf…

腾讯云AI代码助手 —— 编程新体验,智能编码新纪元

阅读导航 引言一、开发环境介绍1. 支持的编程语言2. 支持的集成开发环境(IDE) 二、腾讯云AI代码助手使用实例1. 开发环境配置2. 代码补全功能使用💻自动生成单句代码💻自动生成整个代码块 3. 技术对话3. 规范/修复错误代码4. 智能…

python-NLP:4句法分析

文章目录 句法分析概述句法分析分类句法分析任务 句法结构分析基本概念语法形式化基本方法 依存句法分析浅层句法分析 句法分析概述 句法分析(syntacticparsing)是自然语言处理中的关键技术之一,其基本任务是确定句子的句法结构(syntactic structure)或句子中词汇之…

简单回归问题实战

数据表:链接: https://pan.baidu.com/s/1sSz7F_yf_JeumXcP4EjE5g?pwd753f 提取码: 753f 核心流程: import numpy as np # 计算误差函数 points是数据集中数据的位置 def compute_error_for_line_given_points(b,w,points):totalError0for i in range(0…

虚幻5|入门AI行为树,建立敌人

本章分成两块部分一块是第一点的制作一个简单的AI,后面第二点之后是第二部分建立ai行为树。这两个部分是一个衔接,最好不要跳看 一,制作一个简单的AI 1.首先,我们创建一个敌人的角色蓝图,添加一个场景组件widget用于…