1. 确定2D角色的基本移动方式 对于2D游戏,角色的移动方式通常有键盘输入控制和触屏滑动控制两种。这里我们以键盘输入控制为例进行说明。 2. 在Unity中为2D角色设置合适的碰撞器和刚体组件 碰撞器:为角色添加一个Box Collider 2D或Circle Collider 2D,确保它能够与其他物体进行碰撞检测。 刚体组件:为角色添加一个Rigid...
一般的Unity2D游戏中 用WASD控制来移动人物角色的移动 缺陷:与含有碰撞器的强行碰撞时会发生抖动 原因:例如我人物要向左边走,利用脚本获取键盘输入,给人物角色一个向左边的力,物体会向左边走,但是物体有碰撞器,发生碰撞检测后,会给物体一个方向相反的力,让其向右边走。 2D人物需要添加的组件:Rigidbody2D、注意将...
本期视频讲解了Unity中如何用C#脚本来使角色移动,以及角色的动画控制器下期视频是讲解Rigidbody2D和Collider2D的关系的视频之后尽量做到日更, 视频播放量 26963、弹幕量 211、点赞数 541、投硬币枚数 348、收藏人数 888、转发人数 129, 视频作者 DeerLuuu-鹿, 作者简介 一
上幅图的最右侧设置需要注意一下,需要和代码对应,虽然它就是默认的设置,还是需要注意一下。 设置顺序就是映射的地方设置移动的名称为Movement,然后actions重命名为Move,选择右边action type把button设置为value,控制类型选择二维向量。 再回到move点击加号直接点上下左右控制,在右边path设置相应的按键,如下图。 做完上面...
Unity 角色框选以及AI移动 屏幕线框绘制以及角色选择 屏幕线框绘制以及角色选择 OK 老规矩,直接上图片上代码: 组件搭载: DrawRectangle_ZH 脚本需要搭载到 Camera下。 GestureRecognition_ZH 脚本 看需求自己搭载。 1. 2. 3. 先打开AI的 Navigation 菜单栏 ...
一、角色地面移动 1. 首先在Project -> Asset中创建两个文件夹 Scripts -> Player,在Player文件中创建一个C#脚本PlayerControl,双击打开。 2. 实现角色移动和跳跃 usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassPlayerControl:MonoBehaviour{ ...
// 检测角色是否与地面接触 isGrounded = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, groundLayer); 下面是完整代码,直接复制到你的脚本中,然后就可以运行啦。 using UnityEngine; public class CharacterController2D : MonoBehaviour { public float speed = 5f; public float jumpForce = 5f...
usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;// 通过设置刚体的速度来控制角色移动publicclassPlayerMove:MonoBehaviour{// 是角色的子节点,其right方向始终与移动方向同向[SerializeField]privateTransform_dirTrans;[SerializeField]privateRigidbody2D_rb;[SerializeField]privatefloat_mo...
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassPlayerController:MonoBehaviour{privateRigidbody2Drb;privateCollider2Dcoll;[Header("移动参数")]publicfloatspeed=8f;floatxVelocity;[Header("跳跃参数")]publicfloatjumpForce=6f;intjumpCount;//跳跃次数[Header("状态")]publicbool...
using UnityEngine; public class Player: MonoBehaviour { Rigidbody2D rigidbody2d; // Start is called before the first frame update SpriteRenderer spriteRenderer; public float speedX; //X方向的速度 void Start() { //获取刚体属性 rigidbody2d = transform.GetComponent<Rigidbody2D>(); ...