unity 知道2点计算线段选择角度_我们来用Unity复刻一下《黄金矿工》

a3de77152dbc32a1273fb62c5706d46e.png

前言

空洞骑士的项目算是告一段落了,开新坑开新坑。

这里只有一个问题:

不想再肝了。满脑子装的都是摸鱼。

要是有在摸鱼的同时又能填坑的操作就好了。

4599924b1bdab6065e128b5649a77ce1.png

对了。

以前玩过一个摸鱼必备游戏《黄金矿工》,开这个坑就可以边摸鱼边填坑了。

90e262c5b88bb2ea09e8cb1587c2b507.png

经过上述不超过5分钟的、大起大落的心理过程后,便有了这期的文章。

虽然黄金矿工比较简单,但其中细枝末节较多。文章只会讲解较为重要的技术点,其余部分欢迎参考后续工程代码食用。

模拟绳子

黄金矿工游戏中,玩家通过按键操作并发射钩子来挖取金矿,钩子与绞盘之间有一条绳子进行连接,这条绳子我们使用Unity提供的LineRenderer组件来进行实现。

由于素材的限制,我们使用钩子的这张图片做为玩家的本体,并在上面添加LineRenderer组件,然后在Materials选项中选择默认的精灵图材质(Sprites-Default),然后将Order in Layer选项修改为1,防止被背景2D物体遮挡。其中,Positions选项是用来设置线段的2点,LineRenderer组件会在游戏运行时自动在2点之间进行连线。而我们也是在代码中动态修改这2点的值,来实现绳子的效果。大致设定如图:

08ebc4c2595cfb825747192a79c4fb87.png
LineRenderer设置

接下来,在绞盘的位置新建一个空物体,用于确定线段的起点。然后在代码中更新Positions选项中点的位置即可。代码如下:

public class Player : MonoBehaviour {
    
    public Transform startTrans;    //起始点
    LineRenderer lineRenderer;
    void Start() {
    
        lineRenderer = GetComponent<LineRenderer>();
        lineRenderer.startWidth = 0.1f;//修改线条宽度
    }
    void Update() {
    
        UpdataLine();
    }
    public void UpdataLine()
    {
    
        lineRenderer.SetPosition(0, startTrans.position);
        lineRenderer.SetPosition(1, transform.position);//设置线条2点的位置
    }
}

完成后效果如下:

608f7c2c7a234a5a36c0d63a3ed4c0f6.gif
线条效果

旋转

游戏中,钩子总是绕着绞盘来进行旋转。使用RotateAround这个函数就可轻松解决,难点是如何限制钩子只在下方进行旋转操作,而不会旋转到上方。此处,我们使用向量之间的夹角来进行判断,钩子是否旋转出边界。由于素材的问题,钩子对应的方向是

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值