unity3d为什么怪物只在原地走动

 我来答
锐利还素淡丶行家L
2017-06-07 · TA获得超过3887个赞
知道大有可为答主
回答量:6383
采纳率:94%
帮助的人:2016万
展开全部
以自己为中心进行相交球体探测
/
if (cosValue ;转成2D坐标.transform,下面是我自己瞎想的一个方法,希望对你有点帮助吧;具体思路就是;.y).normalized;,认为这个就是应该被探测的目标
{
if (finds..z));//.;。
float angleCosValue = Mathf.OverlapSphere (this.Add (emys [i];+ emys [i];
/相交球最大的问题就是如果自身有碰撞体; i++)/.Contains (emys [i]; ();/print (.transform ;这个方法的正方向使用的是X轴正方向
.x * theVectorToSearch.right, this.x;使用cos值进行比照;/不重复地放到已找到的列表里面
{
finds;[a*b]
=(x1x2+y1y2).z));转成2D坐标;/Collider可以考虑使用相交球加向量计算的方法获取.transform.;,排版就这样;接下来需要的就是对坐标进行审查
Collider [] emys = Physics;/开始对相交球体探测物体进行排查
{
if (emys [i];,y2)=x1x2+y1y2
cos=a*b/ ().name);//找到目标
}
}
}
}
}
//.normalized.GetComponentlt.x + theVectorForward;cosValue- + cosValue);/[√[x1^2+y1^2]*√[x2^2+y2^2]]
*
*/angleCosValue-莫认真侧角度的cos值作为计算标准
.; i lt;
print (print (/不使用射线而是使用向量计算方法
{
.name),就认为这个单位的角度在侦查范围角度内;//Collider;,判断探测到的物体的cos值如果这个cos值大于标准值;//= angleCosValue)/如果cos值大于基准值..
void searchMethod2(float angle),简化计算向量cos值的时候的计算
float cosValue = (theVectorForward;/寻找到的列表;print (/SeachFind / ();GameObject..position..;Collider.position.

/name-因为已经单位化;同时进行单位化; (); emys,cos是不断下降的
/.gameObject , thisToEmy.transform,高度信息在这个例子中被无视
.y * theVectorToSearch;+emys [i];实际上身边一定圆周范围内的所有具有碰撞体的单位都会被被这一步探测到
,简化计算向量cos值的时候的计算
Vector2 theVectorForward = (new Vector2 (this.GetComponent lt.;自己瞎想的方法.x,避免重复查找
/();
for (int i = 0.gameObject) .right.Cos (change(angle)).gameObject;好吧!= this.GetComponentlt;/同时进行单位化;
Vector3 thisToEmy = emys [i].GetComponentlt, distance);*
* 先求出两个向量的模
再求出两个向量的向量积
a=√[x1^2+y1^2]
b=√[x2^2+y2^2]
a*b=(x1;具体使用的时候非常需要注意正方向的朝向
finds = new Listlt.gameObject);/,就没必要再进行求模计算了
.transform.gameObject) == false) /,因为在0-180角度范围内;Collider;目标坐标减去自身坐标
Vector2 theVectorToSearch = (new Vector2 (thisToEmy,y1)(x2;+angleCosValue);
.Lenh;,高度信息在这个例子中被无视
.position - this,自己也会被侦测到
{
..
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式