在unity3d中如何制作鼠标点击一个物体,然后传送到我想要的坐标上,也就是点击按钮,传送到目的地。

在unity3d中如何制作鼠标点击一个物体,然后传送到我想要的坐标上,也就是点击按钮,传送到目的地。,第1张

void Update () {

if(InputGetMouseButtonDown(0))

{

RayControl();

}

if(flagMove)

{

if(Vector3Distance(transformposition,mousePos)>1)

{

transformTranslate(transformworldToLocalMatrix transformforward TimedeltaTime5);//transformforward是世界坐标,通过transformworldToLocalMatrix转换矩阵转到本地坐标然后在本地坐标运动,没有必要必须在本地坐标系运动 但是必须注意要统一起来。

}

else

{

flagMove=false;

}

}

}

void RayControl()

{

Ray ray=CameramainScreenPointToRay(InputmousePosition);//向屏幕发射一条射线

if(PhysicsRaycast(ray,out hit,200))射线长度为200 和地面的碰撞盒做检测

{

GameObject targetPos=GameObjectCreatePrimitive(PrimitiveTypeSphere);//实例化一个Sphere

targetPostransformlocalScale=new Vector3(05f,05f,05f);

mousePos=hitpoint;//获取碰撞点坐标

mousePosy=transformpositiony;

targetPostransformposition=mousePos;//Sphere放到鼠标点击的地方

targetDir=mousePos-transformposition;//计算出朝向

Vector3 tempDir=Vector3Cross(transformforward,targetDirnormalized);//用叉乘判断两个向量是否同方向

float dotValue=Vector3Dot(transformforward,targetDirnormalized);//点乘计算两个向量的夹角,及角色和目标点的夹角

float angle=MathfAcos(dotValue)MathfRad2Deg;if(tempDiry<0)//这块 说明两个向量方向相反,这个判断用来确定假如两个之间夹角30度 到底是顺时 还是逆时针旋转。

{

angle=angle(-1);

}

print(tempDiry);

print("2:"+angle);

transformRotateAround(transformposition,Vector3up,angle);

flagMove=true;

}

}

1、首先在实现unity场景分碰撞层效果之前要为这几个物体设置不同分层名称。

2、其次设置好分层后就要进行碰撞设置了,打钩表示能够碰撞,不打钩表示不碰撞。

3、最后整分层碰撞就设置好了。

unity中想要产生碰撞效果,则双方碰撞物体都需有collider,运动的一方需要有Rigidbody组件,Rigid body属性 Material:可以添加物理材质设置物体运动的阻力以及d力(点击unity菜单中的Assets ->Create->Physic Material),创建完成后拖入到Rigidbody的Material属性中就可以了,

我这里as为2D物理材质Friction为阻力,Bounciness为d力,设置完成后就可以进行d跳效果了。

1、首先,打开Unity,创建一个圆球和一个平面

2、将球的高度调高一点,让它位于平面上空。

3、给球体添加刚体,输入rigidbody,如下图所示。

4、点击运行,带有刚体组件,可以看到小球自然下落到平面上。小球、平面上自带碰撞器,所以小球不能穿过去。

5、可以自己给平面一个碰撞器,点击添加碰撞器,如下图所示。

6、添加好后,可以调整碰撞器的大小,由于是规则图形,所以创建出来的碰撞器与平面非常贴合,改变一下碰撞器的大小为x、y大小为11。

7、可以看到碰撞器已经出现在我们的视野中,可以调整大小以适合物体或角色,这样可以完美模拟现实中的碰撞效果。

以上就是关于在unity3d中如何制作鼠标点击一个物体,然后传送到我想要的坐标上,也就是点击按钮,传送到目的地。全部的内容,包括:在unity3d中如何制作鼠标点击一个物体,然后传送到我想要的坐标上,也就是点击按钮,传送到目的地。、unity场景该如何划分碰撞层、Unity初学 物体碰撞d跳等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9855289.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存