Unity键盘左右键(AD键)控制2D角色的左右朝向/翻转

这篇具有很好参考价值的文章主要介绍了Unity键盘左右键(AD键)控制2D角色的左右朝向/翻转。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        第一种方法是利用Input.GetAxis("Horizontal")的值得范围。Input.GetAxis("Horizontal")的范围是[-1,1]。

Input.GetAxis("Horizontal")的值大于0时,向右转;Input.GetAxis("Horizontal")小于0时,向左转

将该脚本挂在要控制的角色身上

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

 
public class PlayerControl : MonoBehaviour
{
    Vector3 flipScale = new Vector3(-1, 1, 1); //翻转后的轴的值为负
    private void FixedUpdate()
    {
        Direction();
    }
    public void  Direction()
    {
        float turnX = Input.GetAxis("Horizontal");
        if (turnX > 0)
            transform.localScale = flipScale;
        else if (turnX < 0)
            transform.localScale = Vector3.one; //Vector3.one即Vector3(1,1,1)
    }
   void Update()
    {

    }
}

注意:使用此方法时要保证放在unity中的角色的scale没有改变,若放大或缩小后, transform.localScale = Vector3.one;会让该角色的大小变回初始大小。

第二种方法,利用Input.GetAxisRaw("Horizontal")的取值为{1,0,-1}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

 
public class PlayerControl : MonoBehaviour
{
    private void FixedUpdate()
    {
        Direction();
    }
    public void  Direction()
    {
        float turnX = Input.GetAxisGetAxisRaw("Horizontal");    //取值为 -1,0,1,值的正负决定方向
        if (turnX != 0)
            transform.localScale = Vector3(turnX,1,1);
    }
   void Update()
    {

    }
}

第三种方法:利用人物自带组件SpriteRenderer下的flip;unity前进后退向左向右,unity,游戏引擎

SpriteRenderer.fjilipX=true,即翻转,SpriteRenderer.fjilipX=false不翻转;文章来源地址https://www.toymoban.com/news/detail-778367.html


    private SpriteRenderer sr;
 
    void Start()
    {
        sr = GetComponent<SpriteRenderer>();
    }
    public void FixedUpdate()
    {
        Move(); //移动函数
    }
    public void Move()
    {
        if (Input.GetAxis("Horizontal")> 0)
            sr.flipX = false;
        if (Input.GetAxis("Horizontal") < 0)
            sr.flipX = true;
    }
}

到了这里,关于Unity键盘左右键(AD键)控制2D角色的左右朝向/翻转的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity3D摄像机,键盘控制前后左右上下移动,鼠标控制旋转、放缩

    Unity3D中运行场景时,实现摄像机的前、后、左、右、上、下,以及鼠标滚轮的放缩,鼠标右键的旋转操作。亲测有效,可供参考。 按键功能介绍:W——前;S——后;A——左;D——右;Q——下降;E——上升;鼠标右键——旋转;鼠标滚轮——放缩。 Tourcamera脚本需要挂在摄

    2024年02月11日
    浏览(60)
  • Unity 新建你的第一个游戏,以及如何按WASD控制角色运动 (Unity Demo2D)

    当你打开 Unity Hub,初始化一个 2D 项目,进入了 Unity 编辑器,你会发现在 左侧 : 一个叫 SampleScene (或者其他) 的场景 场景下有一个 Main Camera,主相机 这就是一个新建的 2D 项目自带的内容。 在 Main Camera 同级目录新建: 2D Object - Sprites - Capsule ,这里 Capsule 是精灵的种类,我们

    2024年02月02日
    浏览(45)
  • [Unity] Tilemap瓦片左右翻转(上下翻转)

    Tile(瓦片)左右翻转感觉是很常用的一个功能啊!看了一些教程都没有提及,心想难道要把每张Sprite再做一张对称的、再做成瓦片吗? 图片量x2 、瓦片量x2、不现实!一定有方法! 搜索了了半天没找到方法,结果自己偶然在奇怪的地方不一小心找到了~~ 记录一下! 菜单栏

    2024年01月22日
    浏览(42)
  • Unity2D子弹朝向鼠标位置发射

    废话不多说,先说明一下我使用的变量 float attack_time 用于表示每次攻击的间隙时间 float current_time 攻击时间的冷却 Rigidbody2D body 2D刚体组件 Object bomb 需要发射的物体对象 创建一枚子弹,unity的Instantiate()函数就可以实现,这里需要的三个参数是物体对象(Object),生成位置(Vecto

    2024年02月10日
    浏览(55)
  • Unity2D-使人物翻转的方法

    方法①:使用组件: SpriteRenderer 使用 GetAxis() 和 GetAxisRaw() 没有区别 方法②:使用组件: Transform 情况1:使用 GetAxisRaw() ;没有刹车效果,及翻转过程没有过渡, m o v e F a c t o r moveFactor m o v e F a c t or 取-1,1,0 情况1:使用 GetAxis() ;有刹车效果,及翻转过程有过渡, m o v e F a c t

    2024年02月12日
    浏览(37)
  • Unity创建一个可移动的2D角色

    我们首先创建一个角色,这里我新建了一个胶囊体用来当Player,一个Square用来当地面。 接下来,为角色增加碰撞体和刚体,为地面增加碰撞体。然后我们为Player的刚体增加一个Z轴的约束,避免其东倒西歪。如下图所示: 同时,为角色添加一个空物体作为子物体,用来向地面

    2024年02月10日
    浏览(38)
  • 【unity learn】【Ruby 2D】角色发射飞弹

    前面制作了敌人的随机运动以及动画控制,接下来就是Ruby和Robot之间的对决了! 世界观背景下,小镇上的机器人出了故障,致使全镇陷入了危机,而Ruby肩负着拯救小镇的职责,于是她踏上了修复机器人的旅途。 之前其实一直挺好奇的,fps是怎么样发射子弹的呢? 现在我终于

    2023年04月25日
    浏览(42)
  • 【Unity2D】角色动画的切换

    第一种方法是设置一个中间状态,从中间状态向其余各种状态切换,且各状态向其他状态需要设置参数 实现动作转移时右键点击Make Transition即可  实现动画转移需要设置条件 点击一种动画到另一种动画的线 ,然后点击加号添加Condition 比如机器人从向左走切换到向右走的条件

    2024年02月15日
    浏览(50)
  • Unity Texture2D的裁剪、镜像、翻转、缩放、合并、分辨率

    本人最近做了一个拍照并打印的程序,使用到了多种图片编辑功能,现在罗列一下,希望对大家有所帮助。 裁剪,将贴图上的某个区域裁剪   缩放,缩放和放大原有贴图  水平镜像  垂直镜像  逆时针旋转90度 顺时针旋转90度  两张贴图合并,可以实现水印等功能,该代码

    2024年02月16日
    浏览(39)
  • 2d平面unity,鼠标点击某个位置,人物角色朝这个方向移动

    2d平面unity,鼠标点击某个位置,人物角色朝这个方向移动 如果我们没有将鼠标点击位置转换为世界坐标系中的位置,而是直接将屏幕坐标系中的位置作为角色移动的目标位置,那么可能会发生以下两种情况: 角色会偏离目标位置 由于屏幕坐标系中的位置和世界坐标系中的位

    2024年02月06日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包