unity规则物体的单方向缩放

最近我无意中看见一道面试题 实现一个吊机的效果 然后在力臂的实现上遇到了点困难
在unity中 默认缩放为双向的
比如我们创建一哥Cube 之后再引擎中修改scale 很明显是双向缩放的
同理旋转也是以自己的中心点(重心)为圆心 旋转
如果想要以自己所设置的位置为圆心 只需设置一个父物体(空物体) 之后旋转父物体即可实现

但是缩放这个是通过父物体不能实现的 只能通过代码来实现
在这里插入图片描述
我们的思路是 我们通过代码来移动力臂的位置 之后因为缩放 在game模式下看到的好像是单向的缩放

  public Transform LengthPart;//改变长度的部分

    float scale;
    float speed = 0;
    bool islengthmove = true;
 private void LengthUpdate()
    {
        if (Input.GetKey(KeyCode.W))
        {
          
            scale += 0.05f;
            speed = 2f;
        }
        else if (Input.GetKey(KeyCode.S))
        {
            
            scale -= 0.05f;
            speed = -2f;
        }
        else
        {
            speed = 0;
        }

        if (islengthmove)
        {
            LengthPart.Translate(transform.forward * Time.deltaTime * speed);
        }

        LengthPart.localScale = new Vector3(LengthPart.localScale.x, LengthPart.localScale.y, scale);
        if (LengthPart.localScale.z >= 9.3f)
        {
            islengthmove = false;
            LengthPart.localScale = new Vector3(LengthPart.localScale.x, LengthPart.localScale.y, 9.3f);
        }
        else if (LengthPart.localScale.z <= 1.7f)
        {
            islengthmove = false;
            LengthPart.localScale = new Vector3(LengthPart.localScale.x, LengthPart.localScale.y, 1.7f);
        }
        else
        {
            islengthmove = true;
        }
    }

这样在game模式下 看起来就是单向缩放 但是还是有些许误差 我们可以用一些物体
遮挡起来 从而”骗“过玩家
希望我所写的对大家有帮助
如果有问题可以联系我 主页有我的联系方式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值