Unity项目-黑魂复刻(一)玩家控制器(玩家移动、动画实现以及优化)

玩家输入–通过转化为数字信号的方式进行输入:

设置键位和0~1之间进行平滑过渡

人物移动的数字信号转化:

     public string keyUp = "w";
     public string keyDown="s";
     public string keyLeft="a";
     public string keyRight="d";
     //通过三元运算符判定是否有按下这些键,从而进行赋值水平和垂直方向是 1或者-1
     targetDup = (Input.GetKey(keyUp) ? 1.0f : 0) - (Input.GetKey(keyDown) ? 1.0f : 0);
     targetDright = (Input.GetKey(keyRight) ? 1.0f : 0) - (Input.GetKey(keyLeft) ? 1.0f : 0);
     //当没有按时就需要把玩家停下来
     if (inputEnabled==false) {
   
   
           targetDup = 0;
           targetDright = 0;
      }
      //通过Mathf.SmoothDamp让Dup逐渐趋向与目标
      Dup = Mathf.SmoothDamp(Dup, targetDup, ref velocityDup, 0.1f);
      Dright = Mathf.SmoothDamp(Dright, targetDright, ref velocityDright, 0.1f);

人物转向:

通过输入数字信号的长度计算玩家当前的方向

//解决斜着的速度比水平垂直的速度快
 private Vector2 SquareToCircle(Vector2 input) {
   
   
        Vector2 output = Vector2.zero;

        output.x <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值