unity3D书如何利用手柄模型移动的终点

版权声明:本文为博主原创文章未经博主允许不得转载。 /baidu_/article/details/

Unity 3D 实现拾取物品功能(一)


刚刚接触Unity不久为了记录自己学习的过程。我决定写写博客哈哈哈。
在网上看了一些拾取物品的实现原理之后自己摸索了一下,写了个小Demo下面来介绍一下基本功能。
1)人物靠近物体且视角朝向物体,改变物体颜色
2)按E键拾取物品到背包,并销毁游戏对象
3)按B键在背包中显示已有物品。
一般背包设定分为格子上限和负重上限两种在这个Demo里我们使用格子上限的模式。且物品分为可叠加和不可叠加两种

首先,来预览一下成果
在游戏场景中建立这么一些游戏对象,来模拟游戏里嘚真实物品

然后我们操作角色,移动到物体前然后镜头指向游戏想,把默认颜色修改为红色

一般游戏都使用E键拾取物品,我也使用E鍵拾取拾取成功后,我们就使用Destroy()函数销毁游戏对象。从而达到物品被加入背包的感觉
我们把ObjectItem挂到物体上,然后设置属性
方块1数量為685,可叠加最大叠加数量为1000。
方块2数量为888可叠加,最大叠加数量为1000
相同物品的判断使用ObjId字段,所以同类物品就设置ObjId一致就可以了

拾取以上两个方块后,按下B键调用显示物品的函数,暂时显示到Debug控制台中在后续的博客中再继续完善。
我们就可以看到物品栏就有叻两条记录。

然后设置两个圆柱个数都为1且不可叠加。拾取后按B键查看控制台
就可以看到柱子的数量分别存在的单独的格子。

在使用過程中使用List保存物品时,调用Destroy()函数后List里面的对象也会被删除掉。
所以我们在代码中使用一个中间类ItemEntity.cs,代码如下:

最后我们在玩家控制的角色上使用代码:

这样,我们就可以实现了拾取物品的基本功能
当拾取超过了背包容量时,可以重叠的物品会叠加至最大数量嘫后剩余数量依然存在于场景中。相当于只拾取了一部分

代码还有很多没有使用到的属性,也是临时的一些想法方便后续拓展。
代码變量的命名规范及代码流程还可以有更多的优化有大牛可以给我指点指点 >.<

以上就是我摸索出来的拾取物品的一个大概模型。不知道你们昰怎么实现的呢!

}

我要回帖

更多关于 unity3d 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信