专栏首页Unity游戏开发Unity-黑暗之魂复刻-玩家输入输出

Unity-黑暗之魂复刻-玩家输入输出

1.将键盘信号转换为游戏抽象信号

将键盘输入转换成Dup和Dright两个抽象信号,这两个信号的值在-1到1之间

    public string keyUp = "w";
    public string keyDown = "s";
    public string keyLeft = "a";
    public string keyRight = "d";

    public float Dup;//将虚拟按键转换成信号
    public float Dright;

    void Update()
    {
        Dup = (Input.GetKey(keyUp) ? 1.0f : 0) - (Input.GetKey(keyDown) ? 1.0f : 0);
        Dright = (Input.GetKey(keyRight) ? 1.0f : 0) - (Input.GetKey(keyLeft) ? 1.0f : 0);
    }

输入衰减和旗标(Flag)

使用Mathf中的SmoothDamp来平滑我们的两个信号值 引入新的变量

  public bool inputEnabled = true;
    private float targetDup;
    private float targetDright;

    private float velocityDup;
    private float velocityDright;

在信号值赋值的时候,我们采用平滑的结果

        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;
        }

        Dup = Mathf.SmoothDamp(Dup, targetDup, ref velocityDup, 0.1f);
        Dright = Mathf.SmoothDamp(Dright, targetDright, ref velocityDright, 0.1f);

通过旗标(flag)我们来控制内部一些功能的启用,方便我们的控制。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Unity-黑暗之魂复刻-鼠标输入

    3.隐藏游戏中的鼠标 Cursor.lockState设置成CursorLockMode.Locked

    祝你万事顺利
  • 游戏AI-个体AI角色的操控行为(2)

    我们希望场景中有随机移动的单位,如巡逻的士兵 吃草的牛羊,往往我们在场景中设置几个点让单位在几个点中随机移动,这样会出现一种情况,单位突然掉头,Craig Re...

    祝你万事顺利
  • ShaderGraph-火焰特效

    Voronoi中的AngleOffset来模拟随机运动 UV采用事件控制Y方向上的变化,实现火焰不断向上

    祝你万事顺利
  • 自我介绍的正确姿势

    自我介绍这个问题,不用多说了,面试必定会问!如果想要在自我介绍的时候就能够打动面试官,吸引面试官对我们的兴趣,那么像我们这种接受过Java培训的程序员的自我介绍...

    Java学习
  • TKE中部署EFK日志收集

    通过DaemonSet在每一台Node节点上跑一个Filebeat或fluentd,然后通过挂载的形式将容器日志与该Pod关联,从而处理发送至后端存储;

    蒋经纬
  • hadoop集群搭建

    其他两台机器改一下我们的hostname就行了 node2 node3(重复上面的操作)

    背雷管的小青年
  • AutoAssign: Differentiable Label Assignment for Dense Object Detection

    绝命生
  • 残差网络与非残差网络间的插值-Interpolation between Residual and Non-Residual Networks

    绝命生
  • 你好,CloudBase CLI 1.0

    自命令行界面交互开源工具 CloudBase CLI 发布以来,受到了大量开发者的欢迎。近期,我们发布了新鲜打磨的 CloudBase CLI 1.0 Beta...

    腾讯云开发TCB
  • 流感季,人工智能在行动

    人工智能在流感研究中有两个重要的用途:为公共卫生官员提供更好的流感季节预报;帮助科学家开发更有效的疫苗——甚至可能研制出一种通用流感疫苗,以预防所有流感病毒株。...

    人工智能快报

扫码关注云+社区

领取腾讯云代金券