- 博客(61)
- 资源 (7)
- 收藏
- 关注
原创 角色的行为树获取角色的组件
给角色绑定行为树相当于给角色绑定一个组件,所以可以直接用GetComponent去访问角色的其它组件Seek行为树代码using BehaviorDesigner.Runtime.Tasks;using UnityEngine;using UnityEngine.AI;public class SoldierSeekFinalTarget : Action{ public...
2019-12-31 09:52:44 255
原创 导航NavMeshAgent的移动
GetComponent<NavMeshAgent>().SetDestination(目标.transform.position);
2019-12-31 08:48:18 580
原创 如何导出资源包
如何导出资源包一般来说右键点击【ExportPackage】导出打包就行了,所关联预制物的东西都会被打包出来,但是Shader不会被打包出来,所以要选中预制体和Shader这两个文件夹,才能够导出这个预制体的全部资源打包的时候就会发现unity帮你引用了模型材质都会打进来。...
2019-12-30 16:44:48 593
原创 用协程生成小兵
游戏开启之后,暂停5秒,生成3个小兵,每个小兵的生成间隔是1秒,生成完三个小兵之后,停10秒,再生成下一波using System.Collections;using UnityEngine;//小兵生成器public class SoldierSpwan : MonoBehaviour{ //保存协程,用于稍后关闭 private Coroutine Corouti...
2019-12-30 16:21:29 187
原创 手写Seek任务和CanSeeObject
任务的生命周期在类里右键选择快速操作和重构点击生成重写选择需要重写的函数Seek任务using BehaviorDesigner.Runtime;using BehaviorDesigner.Runtime.Tasks;using UnityEngine;//动作任务public class NNSeek : Action{ //Sha...
2019-12-30 14:38:53 428 1
原创 判断扇形区域
先判断是否在距离之内,然后再判断是否在角度之内//计算距离var dis = (item.transform.position - transform.position).magnitude;//计算角度,参数:1、自己前方的向量,2、自己与目标点之间的向量var angle = Vector3.Angle(transform.forward, item.transform.posit...
2019-12-30 14:05:59 1301
原创 求两点之间的距离
//如果自己和目标的距离小于某个值,返回trueif ((target.transform.position - transform.position).sqrMagnitude < 0.5f){ return TaskStatus.Success;}
2019-12-30 11:29:08 127
原创 移动插值运算
第一种://朝着目标移动//Vector3.MoveTowards插值计算,参数:1、自己的位置,2、目标的位置,3、速度transform.position = Vector3.MoveTowards(transform.position,target.transform.position,speed*Time.deltaTime);第二种://利用插值运算实现移动//参数...
2019-12-30 11:27:30 906
原创 绑定属性Variables - 当物体检测到目标进入区域后,让物体追着目标移动
选择行为树,添加变量,设置name和type添加后的变量设置追踪的Seek任务追踪的速度小于目标的速度时,会一直追踪。绑定Can See Object的数据选择刚才创建的Target变量绑定Seek的数据选择刚才创建的Target变量...
2019-12-30 08:50:23 144
原创 AbortType打断任务 Sequence - 【Abort Type】属性
Lower Priority设置Sequence的中断类型None:没有打断Lower Priority:中断同级的任务,即中断Seek任务作用:只要行为树还在执行的时候,其子级(Can See Object)就会一直在执行。也就是说Can See Object随时在检测,只要它检测到了目标,那么它就会返回一个True,这时Sequence也会跟着返回true,而Selecto...
2019-12-29 17:51:30 1480
原创 Can See Object(寻找对象)任务 Conditionals- Movement -【Can See Object】
这是一个判断任务,只会返回值会显示一个扇形区域,运行时该区域不显示,并且只会执行一次判断,不会时刻都监视作用:如果目标在这个扇形范围之内,Returned Object就会返回目标的名字设置属性Target Object:目标对象Field of View Angle:视野角度View Distance:视野距离Returned Object:追踪...
2019-12-29 16:27:37 472
原创 Seek(控制行走)任务 Actions - Movement -【Seek】
创建一个Player的GameObject对象,并创建一个行为树Seek任务作用:设置一个目标点给它,到达目标点后会停止给Player添加导航组件创建一个目标点targetPoint将刚才创建的目标点拖到Seek任务的Target属性里执行效果:Player会移动到targetPoint点属性介绍Speed:速度Angular S...
2019-12-29 15:38:18 170
原创 Patrol(巡逻)任务 Actions - Movement -【Patrol】
必须安装【Behavior Designer - Movement】资源包新建一个场景,并添加plane和cube给cube添加行为树Patrol(巡逻)任务通过导航的网格,绕着几个特定的点导航Waypoints添加三个点场景里创建三个GameObject并设置好它们的位置设置一下图标的样式将创建的三个点拖进来给Cube添加导航...
2019-12-29 14:41:15 397
原创 Behavior Designer - Movement Pack 导航资源包
行为树里有很多任务,导入这个包用来实现A星寻路或者其它导航。线上安装:搜索Behavior Designer Movement导入Behavior Designer - Movement导入后Actions任务里会多一个Movement...
2019-12-29 14:35:41 1780
原创 浮点条件判断 Conditionals - Basic - Math - 【Float Comparison】
添加一个浮点判断效果设置判断条件因为条件不相等所以返回false还可以这样做,添加一个Sequence容器,下面两个子任务,一个条件判断,一个LOG,如果条件判断为false,则Sequence容器返回flase,则执行右面的那个LOG...
2019-12-28 17:06:12 143
原创 容器任务-Selector-或操作 Composites - 【Selector】
a||b只要一个为true,这个任务就为true必须要有子任务Selector容器的目标就是只要下面的子任务有一个为true,Selector状态为true就不执行了,顺序是从左往右。...
2019-12-28 17:02:35 129
原创 Idle任务 Actions - 【Idle】
返回一个正在运行的任务状态。将仅在中断或触发条件中止时停止。当执行到Idle任务时会待机,不会往后执行。运行结果是第一个LOG已经运行,第二个LOG没有被执行...
2019-12-28 16:11:45 502
原创 容器任务-Sequence-且操作 Composites - 【Sequence】
两种添加方式或者鼠标点击红框区域连接到Sequence任务,有感叹号的因为它是一个容器,下面必须要有子任务。子任务的运行顺序是从左往右执行子任务全部被执行后,Sequence的状态才会显示绿色勾号a&&b,必须都为true,这个任务才为true将Log任务连接到Sequence再次创建一个Log并连接Sequence,修改它的值为2...
2019-12-28 16:09:29 146
原创 给物体添加一个行为树,并添加Log任务
创建一个胶囊,修改名称:EnemyBehavior行为树点击Enemy,插件会显示红框内容,右键创建一个行为树插件会自动创建一个Behavior Tree组件修改行为树的名字和描述Task任务右键为行为树添加任务鼠标移上去会显示隐藏或者显示log:日志是一个简单的任务,它将输出指定的文本并返回成功。它可以用于调试。InsPector...
2019-12-28 15:13:06 178
原创 Behavior Tree的安装与介绍
资源商店里购买behavior designer导入插件导入后菜单栏会多一个Tools打开EditorBehavior给对象添加的行为树Tasks任务,一个行为树由很多任务组成Variables变量,相当于动画状态机里面的参数,InsPector相当于项目里的属性...
2019-12-28 15:10:19 480
原创 interface接口
//接口类public interface IHurtObject { //参数:1、伤害值,2、攻击者ID void SendHurtRequest(int hurtValue,int ObjectID);}public class TowerModel : MonoBehaviour,IHurtObject { //继承接口 public void ...
2019-12-26 14:08:30 82
原创 Trigger触发器的使用
private GameObject guanghuan;//攻击范围的光环void Start () { //获取攻击光环 guanghuan = transform.Find("guangquan_jianta").gameObject; //隐藏光环 guanghuan.SetActive(false);}//进入触发private v...
2019-12-26 09:36:47 189
原创 触发器的使用,角色到达炮塔的攻击范围,炮塔攻击,委托的使用
炮塔的攻击范围为炮塔创建脚本TowerModel 和 球形碰撞器SphereCollider并设置半径,并勾选Is Trigger触发器炮塔勾选触发器,角色身上必须添加刚体,刚体不受力的作用,因为只是用来发生碰撞碰撞和触发的区别物体发生碰撞的必要条件:两个物体都必须带有碰撞器(Collider),其中运动的物体还必须带有Rigidbody刚体。Unity3d中的碰撞...
2019-12-26 09:15:14 300
原创 制作一条跟随目标移动的红外线
创建一条线设置红线的位置和颜色,Element0是第1个点的位置,Element1是第2个点的位置,两点形成一条直线让红线的一点跟随目标移动private GameObject target;//炮塔触发到的对象private LineRenderer Line;//红线void Update () { if(target != null) { ...
2019-12-26 08:58:02 267
原创 实时显示摄像机拍到的画面
1、创建要保存画面的Render Texture2、摄像机 Target Texture 选择要保存的画面3、将Render Texture拖到物体上可以实时显示拍到的画面效果:
2019-12-24 11:20:10 876
原创 协程制作Cd动画
创建技能图标给skill设置图标,并添加Mask组件,绑定脚本CDTest创建遮罩CDTest脚本using System.Collections;using UnityEngine;public class CDTest : MonoBehaviour { float CDTime = 3;//CD时间3秒 v...
2019-12-24 10:10:41 153
原创 EasyTouch5遥感插件的使用
导入【Easy Touch 5 Touchscreen Virtual Controls 5.0.12.unitypackage】插件添加遥感调整遥感的位置//获取遥感//Math.Round向上取整//ETCInput.GetAxis获取遥感数值int posX = (int)Math.Round(ETCInput.GetAxis("Horizontal"))...
2019-12-22 15:41:29 391
原创 UHUDText扣血效果插件的使用
导入【UGUI HUD Text v1.4.1.unitypackage】插件将HUD预制物拖到项目中扣血效果的代码//参数:1、角色本身的transform,2、hp和-号组合 HUDTextInfo info7 = new HUDTextInfo(角色.transform, string.Format("{1}{0}", 血量, "-")); info7....
2019-12-22 15:39:10 1158
原创 X-BARS血条的使用
导入【X-BARS血条.unitypackage】插件角色预制物上添加HealthBar组件public class PlayerMove : MonoBehaviour {[HideInInspector] public int HP = 100; //这个变量是上图中Health var name的值}修改HealthBar脚本public class ...
2019-12-22 15:31:24 456
原创 显示同级界面
//用自己的父级来查找同级transform.parent.Find("MatchingPanel").gameObject.SetActive(true);
2019-12-21 16:00:53 118
原创 旋转插值运算
// 摘要:// Creates a rotation with the specified forward and upwards directions.//// 参数:// forward:// The direction to look in.//// upwards:// The vector that defines in which d...
2019-12-19 14:26:14 374
原创 人物旋转
将角色导航里的Angular Speed设置为0//方向var speed = new Vector3(x, 0, y);//手动设置旋转//LookAt(目标点的位置) = 旋转到目标点的方向//目标点的位置 = 自己的坐标 + 方向GetComponent<Transform>().LookAt(GetComponent<Transform>()...
2019-12-18 11:34:13 206
原创 动画的各类触发事件
FloatGreater:大于参数Less:小于参数GetComponent<Animator>().SetFloat("speed", 3.0f);IntGreater:大于参数Less:小于参数Equalsd:等于参数NotEqual:不等于参数TriggerGetComponent<Animator>().Set...
2019-12-18 10:28:49 188
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人