2017-12-4 十三:移动路径时光标约束在范围内讲解

来源:互联网 发布:淘宝店的客服怎么登陆 编辑:程序博客网 时间:2024/06/08 19:39


听了一遍,没懂,教师语文是体育老师教的,方言又比标准话讲得好;


第二遍:移动路径时光标约束在范围内讲解

1.constant path 里有nodes,判断当前的光标(鼠标ray)在不在nodes里,判断出在范围内


2.重点讲一下约束节点这个类:FangKuaiGeZiManager.cs  

在这个脚本里写:

public NNConstraint NConstraint;  这个约束public后,在unity面板里没有看到,因为加序列化的特性


可以修改这个类,也可以拓展,建议拓展,否则a星升级,这个类会更新回去


3.在VS里,工程目录下SLG.BLL目录下,加一个NNConstraintS目录,注意要末尾加“s”,以区别A星里的

在目录下,建一个子类,类名NNConstraintEXT.cs  ,继承自NNConstraint


这时回到FangKuaiGeZiManager.cs  ,改为

public NNConstraintEXT nConstraintEXT;

约束出现在面板里了

有很多参数




4.继续FangKuaiGeZiManager.cs


  void Update()        {          Vector3 ConstrainPosition=  (Vector3)AstarPath.active.GetNearest(IGuangBiao.GetGuangBiaoPos(), nConstraintEXT).node.position;            //  GuangBiaoTransform.position = IGuangBiao.GetGuangBiaoPos();            GuangBiaoTransform.position = ConstrainPosition;        }


5.参数




如上图,A星,不可行走区,红点区;

当GuangBiaoManger的FangKuaiGeZiManager.cs参数,不勾选Walkable时,即鼠标停留在红点区


6.对应输入参数




如图,建立Temp物体

给其GraphUpdateScene.cs脚本

选择Modify Tap

在Tag Value里有很多可以选项:





可以修改,到A星物体下修改


选择Temp物体,在顶视图,按住Shift键,点击出一个图案,此为可移动区A;


这时,选择Model,在Seeker.cs里,选择Valid Tags为MoveRange,如图,则人物在上面的区域A中移动;

同理,鼠标也希望它约束在区域 A中




这里的区域选择是,旧版本的a星插件,是一个1和0的二进制数




回到GuangBiaoManger物体,在面板参数里输入(按位运算的)1000,代表MoveRange,如图,鼠标只在区域A中移动,输入1000的十进制数“8”,也可以








原创粉丝点击