【Unity InputSystem】实用教程-实现角色移动跳跃功能(Input System在PC端鼠键!手机端触摸屏!主机手柄!三端使用教程)

这篇具有很好参考价值的文章主要介绍了【Unity InputSystem】实用教程-实现角色移动跳跃功能(Input System在PC端鼠键!手机端触摸屏!主机手柄!三端使用教程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.前言

在上一篇文章当中我们手把手的跟大家分享了InputSystem的基础操作(如何使用5种不同的方式获取到InputSystem种的输入检查信息)。那么接下来我们继续分享一下在我们获取到InputSystem输入信息后,如何使用检测到的信息实现我们对应的输入功能。
本次我们使用的Unity编辑器版本为2021.3LTS(如使用不同版本可能存在操作界面不同的情况)。

如果觉得图文教程不够详细的朋友可以移步到【InputSystem实操教程】观看视频教程。

上篇文章的分享当中我们学习了5种不同的输入检测调用方式,我们本次分享主要会以脚本调用来完成功能的实现(不了解的朋友可以翻回上一篇文章查看一下 - 【InputSystem基础教程】)。

2.PC端-鼠键

2-1.创建PC对应的鼠键InputActions

在安装好InputSystem之后我们先在项目中创建InputActions。
unity实现跳跃,Unity插件,unity,游戏引擎,游戏
创建InputActions成功后双击打开InputActions编辑页面,创建一个ActionMaps命名为PC,之后再创建Map中对应的几个Actions分别命名为Move,CameraControl,Jump。
unity实现跳跃,Unity插件,unity,游戏引擎,游戏
Move,CameraControl的Action Type选择Value, Control Type为返回值类型选择Vector2。unity实现跳跃,Unity插件,unity,游戏引擎,游戏
在MoveAction的输入绑定中我们需要进行以下操作
选择方向键混合绑定
unity实现跳跃,Unity插件,unity,游戏引擎,游戏
之后在每个方向检测上绑定对应的输入检测方式,每次变更完InputAction后记得点击Save Asset保存(或者勾选右侧的Auto Save自动保存)
unity实现跳跃,Unity插件,unity,游戏引擎,游戏

此处Jump和CameraControl的输入检测绑定大同小异,如有不清楚的可以查看 日醉夜的狗-【Unity】InputSystem教程系列 视频内有更详细的绑定教程与分享。

创建好的InputActions后,我们可以在InputActions属性面板中找到Generate C# Class并勾选,随后点击Apply生成对应的脚本,之后我们就可以在我们自己写的PlayerController 类中调用该脚本了
unity实现跳跃,Unity插件,unity,游戏引擎,游戏
万事俱备之后我们就需要开始写代码了

2-2.PC脚本调用初始化

在获取我们对应输入检测前需要先写一些初始化的脚本

using UnityEngine;
using UnityEngine.InputSystem;

public class RPGController : MonoBehaviour
{
    public RPGInputActions rpgInputActions;
    private void Awake() {
    	//实例化我们刚刚生成的rpgInputActions脚本
        rpgInputActions = new RPGInputActions();
    }
    void OnEnable()
    {
    	//使用前需要将该rpgInputActions开启
        rpgInputActions.PC.Enable();
    }
    void OnDisable()
    {
    	//使用完需要将该rpgInputActions关闭
        rpgInputActions.PC.Disable();
    }
    //Update生命周期函数
    private void Update() {
    }
}

PC获取Move Action输入

	//将获取Move输入方法写在Update方法中逐帧调用
    private void Update() {
        getMoveInput();
    }
    //获取Move输入方法
    private void getMoveInput(){
        //将读取到的Move返回值赋值给moveVector2 
        Vector2 moveVector2 = rpgInputActions.PC.Move.ReadValue<Vector2>();
    	//判断是否有按下对应的Move按键
        if (moveVector2  != Vector2.zero) {
        	//将获取到的返回值打印出来
            Debug.Log(moveVector2);
        }
    }

PC获取Jump Action输入

	//将获取Jump输入方法写在Update方法中逐帧调用
    private void Update() {
        getJumpInput();
    }
    //获取Jump输入方法
    private void getJumpInput(){
        //将读取到的Jump返回值赋值给isJump 
    	bool isJump = rpgInputActions.PC.Jump.IsPressed();
    	//判断是否有按下对应的Jump按键
        if (isJump) {
        	//将获取到的返回值打印出来
            Debug.Log(isJump);
        }
    }

PC获取CameraControl Action输入

	//将获取CameraControl输入方法写在Update方法中逐帧调用
    private void Update() {
        getCameraControlInput();
    }
    //获取CameraControl输入方法
    private void getCameraControlInput(){
        //将读取到的CameraControl返回值赋值给cameraOffset 
        Vector2 cameraOffset = rpgInputActions.PC.CameraControl.ReadValue<Vector2>();
    	//判断是否有鼠标是否有产生偏移
        if (cameraOffset != Vector2.zero) {
        	//将获取到的鼠标偏移值打印出来
            Debug.Log(cameraOffset );
        }
    }

将我们上面写好的脚本挂载到对应的游戏对象上,点击开始在项目运行时我们就可以通过刚刚绑定在Action上的按键触发我们写好的输入检测获取方法了。
unity实现跳跃,Unity插件,unity,游戏引擎,游戏

2-3.功能实现

既然我们可以获取到不同硬件设备的输入检测时,我们接下来就要将检测到的输入信号和我们实际的执行方法关联在一起,实现我们项目中的具体功能。我们具体功能的实现会以PC端鼠键输入检测为例。

2-3-1.键盘控制角色移动

根据上述2-1章节中PC端鼠键检测的操作,我们可以通过键盘的WASD或者小键盘的方向键获取到一个类型为Vector2的返回值。接下来我们将该方法进行一个小改动实现角色移动的功能。

public class RPGController : MonoBehaviour
{
    public RPGInputActions rpgInputActions;
    //声明一个移动速度属性初始值可以自行安排,我这里给个2
    private float moveSpeed = 2f;
    private void Update() {
        getMoveInput();
    }
    private void getMoveInput(){
    	//将读取到的Move返回值赋值给moveVector2 
        Vector2 moveVector2 = rpgInputActions.PC.Move.ReadValue<Vector2>();
    	//因为我们的playerMove会在Update生命周期函数中逐帧执行,所以在执行前需要判断是否有按下对应的按键
        if (moveVector2 != Vector2.zero) {
        	//使用获取到的Vector2.x和Vector2.y返回值作为角色移动的参数
            playerMove(moveVector2.x,moveVector2.y);
        }
    }  
    //使角色真正移动的方法
    private void playerMove(float horizontal,float vertical){
        transform.Translate(new Vector3(horizontal,0,vertical)*Time.deltaTime*moveSpeed,Space.World);
    } 
}

在该代码中我们实现了通过Move输入检测来控制角色移动那么我们来一点小小的优化让代码更加简洁

public class RPGController : MonoBehaviour
{
    public RPGInputActions rpgInputActions;
    //声明一个移动速度属性初始值可以自行安排,我这里给个2
    private float moveSpeed = 2f;
    //表达式用于初始化moveAxis获取rpgInputActions.PC.Move的返回值赋值给moveAxis
    private Vector2 moveAxis => rpgInputActions.PC.Move.ReadValue<Vector2>();
    private void Update() {
        getMoveInput();
    }
    private void getMoveInput(){
    	//因为我们的playerMove会在Update生命周期函数中逐帧执行,所以在执行前需要判断是否有按下对应的按键
        if (moveAxis!= Vector2.zero) {
        	//使用获取到的Vector2.x和Vector2.y返回值作为角色移动的参数
            playerMove(moveVector2.x,moveVector2.y);
        }
    } 
    //使角色真正移动的方法
    private void playerMove(float horizontal,float vertical){
        transform.Translate(new Vector3(horizontal,0,vertical)*Time.deltaTime*moveSpeed,Space.World);
    } 
}

2-3-2.键盘控制角色跳跃

在我们通过键盘的空格键获取到一个类型为bool的返回值。接下来我们就使用该返回值实现角色跳跃的功能。

public class RPGController : MonoBehaviour
{
    public RPGInputActions rpgInputActions;
    //获取对象刚体用于实现跳跃功能时给其施加一个向上的力
    public Rigidbody playerRigidbody;
    //表达式用于初始化isJump 获取rpgInputActions.PC.Jump是否有按下赋值给cameraOffset 
    private bool isJump => rpgInputActions.PC.Jump.IsPressed();
    private void Update() {
        getJumpInput();
    }
    private void getJumpInput(){
        if (isJump) {
        	//判断Jump输入设备被按下时给执行跳跃方法
            playerJump();
        }
    }
    //给刚体施加一个向上的力使角色模拟跳跃的效果
    public void playerJump(){
        playerRigidbody.AddForce(Vector3.up * 5);
    }
}

2-3-3.鼠标控制视角转动

在我们通过鼠标偏移获取到一个类型为Vector2的返回值。接下来我们就使用该返回值实现控制镜头的功能。

public class RPGController : MonoBehaviour
{
    public RPGInputActions rpgInputActions;
    //获取围绕旋转对象的Transform 
    public Transform targetFollowTransform;
    //获取需要控制旋转的相机Transform 
    public Transform cameraTransform;
    //表达式用于初始化moveAxis获取rpgInputActions.PC.CameraControl的返回值赋值给cameraOffset 
    private Vector2 cameraOffset => rpgInputActions.PC.CameraControl.ReadValue<Vector2>();
    private void Update() {
        getCameraControlInput();
    }
    private void getCameraControlInput(){
        {
        	//判断获取cameraControl的输入设备是否触发偏移值
            if(cameraOffset != Vector2.zero){
            	//控制相机以targetFollowTransform对象为中心围绕世界坐标垂直轴进行水平旋转,旋转角度为cameraOffset水平方向返回的偏移值
                cameraTransform.RotateAround(targetFollowTransform.position, Vector3.up, cameraOffset.x);
            	//控制相机以targetFollowTransform对象围绕相机自身水平轴进行垂直旋转,旋转角度为cameraOffset垂直方向返回的偏移值
                cameraTransform.RotateAround(targetFollowTransform.position, cameraTransform.right, -cameraOffset.y);
            }
        }
    } 
}

3.主机端-手柄

3-1.创建主机对应的手柄InputActions

绑定MoveAction的触发操作

在手柄控制MoveAction的输入绑定中我们需要进行以下操作
选择普通的绑定即可
unity实现跳跃,Unity插件,unity,游戏引擎,游戏
绑定操作设备选择手柄Gamepadunity实现跳跃,Unity插件,unity,游戏引擎,游戏
因为我们Move动作选择的返回值类型为Vector2所以手柄这里默认的触发行为默认的有三个(D-Pad坐标方向键, Left Stick左摇杆, Right Stick右摇杆)根据我们喜好选择Gamepad上的触发操作(一般是选择左摇杆来控制移动)unity实现跳跃,Unity插件,unity,游戏引擎,游戏

绑定JumpAction的触发操作

在手柄控制JumpAction的输入绑定中前两步的选择都是一样
1.在JumpAction上点击+号选择普通的绑定即可
2.绑定操作设备选择手柄Gamepad
3.选择右边方向键的西边按键(因为不同厂商的右边方向键显示不同,所以用东南西北方向来表示)
unity实现跳跃,Unity插件,unity,游戏引擎,游戏

绑定CameraControlAction的触发操作

在手柄控制CameraControlAction的输入绑定中前两步的选择都是一样
1.在CameraControlAction上点击+号选择普通的绑定即可
2.绑定操作设备选择手柄Gamepad
3.选择右摇杆(也可以根据自己喜欢选择其他触发操作)unity实现跳跃,Unity插件,unity,游戏引擎,游戏

3-2.功能实现

在手柄上的功能实现因为我们用的都是同一套的InputAction,所以我们只需要完成上述绑定手柄的对应Actions触发即可。
这里因为我们在 2.PC端鼠键 小节的时候已经把对应的脚本写好了(如果没有写好脚本按照 2-2.PC脚本调用初始化2-3.功能实现 流程完成代码即可),这里我们就不需要重新再写脚本了(这就是InputSystem区别于旧版InputManager最大的优势无需重新写代码)点击开始在项目运行时我们就可以通过刚刚绑定在Action上的按键触发我们写好的输入检测获取方法了。

4.移动端-触摸屏

我们要获取移动端触摸屏输入检测的话可以通过两种方式
在获取之前我们需要做几个对应的准备工作

4-1.PC鼠标模拟触控

使用PC上鼠标模拟触摸屏上点击实现模拟触控(仅能模拟单指触控)
我们需要点击Window=>Analysis =>Input Debugger
unity实现跳跃,Unity插件,unity,游戏引擎,游戏
打开Debugger视窗之后点击左上角的Options选择Simulate Touch Input
unity实现跳跃,Unity插件,unity,游戏引擎,游戏
添加新输入设备检测后可以看到输入设备栏中从原本只有鼠键两种检测新增多了一个模拟触摸屏,这就代表成功了。
之后我们使用鼠标点击就相当于模拟我们手指在触摸屏上点击的效果
unity实现跳跃,Unity插件,unity,游戏引擎,游戏

4-2.Unity Remote 真机触控

使用Unity Remote 实现真机触控(实机模拟完全真实)
这篇文章中有详细的 Unity Remote使用教程

4-3.创建手机对应的触摸屏操作触发方式

绑定Move的触发操作为JoyStick的虚拟摇杆方向触发

我们在使用移动端触摸屏区别于主机端和PC端的一些不同点就在于,由于触摸屏原本的触发方式相对来说比较单调,所以项目操作比较多情况下难以区分触摸屏的触发方式为何种操作使用触摸屏更多时候的一些触发方式为使用虚拟摇杆或者虚拟按钮,因此我们需要做一下以下的准备工作。

下载虚拟摇杆工具
1.我们需要先在Unity Asset Store上搜索 joystick
2.在索搜结果中找到这个免费的下载并导入到我们的项目中
unity实现跳跃,Unity插件,unity,游戏引擎,游戏
3.将JoyStick导入我们项目中,并找到对应的Variable JoyStick放置到我们场景的UI当中
unity实现跳跃,Unity插件,unity,游戏引擎,游戏

绑定Jump的触发操作为虚拟按钮触发

1.在UI中新建一个Button组件并起名为Jump(这里我喜欢用旧版的Button组件,喜欢用新版的Button - Text MeshPro也一样)
unity实现跳跃,Unity插件,unity,游戏引擎,游戏

绑定CameraControl的InputSystem触发操作

在手柄控制CameraControlAction的输入绑定中前两步的选择都是一样
1.在CameraControlAction上点击+号选择普通的绑定即可
2.绑定操作设备选择手柄TouchScreenunity实现跳跃,Unity插件,unity,游戏引擎,游戏3.选择Delta为摄像机视角移动的触发操作(PS:此选项为触摸屏两帧之间的偏移值)unity实现跳跃,Unity插件,unity,游戏引擎,游戏

4-4.功能实现

4-4-1.触摸屏控制角色移动

在我们的上述章节当中其实已经实现了PC端和主机端物体移动,接下来我们完成以下几步即可实现移动端触摸屏的物体移动功能。
1.将虚拟摇杆中获取到的Vector2返回值作为参数赋值到我们移动方法

public class RPGController : MonoBehaviour
{
	public Joystick moveJoystick;
    private float moveSpeed = 2f;
    //Update生命周期函数
    private void Update() {
        getTouchScreenMove();
    }
    private void getTouchScreenMove(){
        //使用获取到的虚拟摇杆Joystick的Horizontal和Vertical返回值作为角色移动的参数
        playerMove(moveJoystick.Horizontal,moveJoystick.Vertical);
    }
    //使角色真正移动的方法
    private void playerMove(float horizontal,float vertical){
        transform.Translate(new Vector3(horizontal,0,vertical)*Time.deltaTime*moveSpeed,Space.World);
    }
}

2.将刚刚写的公共JoyStick变量进行绑定
unity实现跳跃,Unity插件,unity,游戏引擎,游戏
3.完成上述两步,我们移动端的触摸屏虚拟摇杆触发物体移动功能就完成了。

4-4-2.触摸屏控制角色跳跃

1.找到我们的JumpButton组件
2.在Button的属性面板上面找到OnClick绑定
3.将挂载了我们已经写好了功能实现脚本的对象拖动挂载到OnClick上面
4.找到写好的跳跃方法进行绑定
unity实现跳跃,Unity插件,unity,游戏引擎,游戏

4-4-3.触摸屏控制视角转动

在触摸屏上上述两种功能实现因为是用到了虚拟按钮没有使用到InputAction的触发绑定,所以需要完成以上两个小节才可以实现对应的具体功能。
但在视角旋转上面的触发操作我们是绑定了InputAction的,所以我们和3-2.手柄的功能实现一样无需做额外的操作即可实现对应的视角转动功能 (但如果还是没有写好功能实现的脚本同样是按照 2-2.PC脚本调用初始化2-3.功能实现 流程完成代码即可)。

完成上述脚本编写和绑定CameraControl在触摸屏上触摸为触发操作以触发两帧之间的偏移值为返回值。那么我们在触摸屏上进行滑动触摸便可以进行视角的转动。

4-5.触摸屏触控操作优化

由于我们是在触摸屏是进行操作触发的,那么仅仅只是上述的流程确实可以完成单独对应的功能实现,但是当我们进行多点触控的时候难免会有一些触发误判或者冲突的地方(如上述的物体移动和视角转动功能是有冲突的。虽然移动功能是通过虚拟摇杆触发但在我们触发虚拟摇杆的同时其实也是在触控滑动我们的屏幕,这样就会触发到了视角转动的功能),因此我们需要在升级一下我们的脚本进行触发功能的区分。

using UnityEngine.InputSystem;//引用InputSystem包
public class RPGController : MonoBehaviour
{
	public Joystick moveJoystick;
    private float moveSpeed = 2f;
    public GameInputActions gameInputActions;
    public Transform targetFollowTransform;
    public Transform cameraTransform;
    //Update生命周期函数
    private void Update() {
        getTouchScreenMove();
    }
    private void getTouchScreenMove(){
        //使用获取到的虚拟摇杆Joystick的Horizontal和Vertical返回值作为角色移动的参数
        playerMove(moveJoystick.Horizontal,moveJoystick.Vertical);
    }
    //使角色真正移动的方法
    private void playerMove(float horizontal,float vertical){
        transform.Translate(new Vector3(horizontal,0,vertical)*Time.deltaTime*moveSpeed,Space.World);
    }
    //获取CameraControl输入方法
    private void getCameraControlInput(){
        //将读取到的CameraControl返回值赋值给cameraOffset 
        Vector2 cameraOffset = gameInputActions.PC.CameraControl.ReadValue<Vector2>();
    	//判断是否有鼠标是否有产生偏移
        if (cameraOffset != Vector2.zero) {
        // 	//将获取到的鼠标偏移值打印出来
            cameraTransform.RotateAround(targetFollowTransform.position, Vector3.up, cameraOffset.x);
            cameraTransform.RotateAround(targetFollowTransform.position, cameraTransform.right, -cameraOffset.y);
        }
    }
    //将物体移动方法和视角转动方法都放到该方法内进行统一判定
    private void touchControl(){
        //因为在触摸屏上有多点触发的可能性,因此我们需要获取到每个触发点的顺序
        for(int i=0;i<Input.touchCount;i++){
            //按照触发点的顺序来获取在屏幕上的对应位置进行功能判定
            Vector3 touchPos= Input.GetTouch(i).position;
            //如果触发点在屏幕左半屏即为移动功能触发,我们执行移动方法即可
            if(touchPos.x < Screen.width / 2){
                getTouchScreenMove();
            }
            //如果触发点在屏幕右半屏即为视角转动功能触发,我们执行视角转动方法即可
            if(touchPos.x > Screen.width / 2 && touchPos.y > Screen.height / 2){
                getCameraControlInput();
            }
        }
    }
}

在脚本进行了优化之后我们触摸屏就可以实现左右半屏单点触发对应的功能。

5.总结

以上就是我们InputSystem在不同设备上的一些实用技巧分享,如果觉得图文分享不够详细可以点击链接 日醉夜的狗-【Unity】InputSystem教程系列 观看更详细的视频分享哦!另外还有更多详细实用的教程系列视频在我的Unity中文课堂频道 欢迎大家一起来学习!文章来源地址https://www.toymoban.com/news/detail-679361.html

到了这里,关于【Unity InputSystem】实用教程-实现角色移动跳跃功能(Input System在PC端鼠键!手机端触摸屏!主机手柄!三端使用教程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Unity简单操作:InputSystem获取WASD键盘输入 移动人物

      目录 安装InputSystem  在编辑的脚本中使用 InputSystem生成的脚本 Unity版本:2019.2.3f1 菜单栏/Window/Package Manager/Input System  工程面板内 右键--创建Input Actions   选中New Controls改名为PlayerControls 然后属性 面板按下Edit asset  Action Maps添加:PlayerMovement   Actions添加:New action 改名为

    2024年02月16日
    浏览(36)
  • unity通过脚本实现漫游功能 wasd控制玩家移动,空格跳跃,鼠标控制视野旋转,滑轮控制镜头伸缩

    将场景中的摄像机删除,在玩家的控制面板中添加Camera组件,和rigibody组件   using System.Collections; using System.Collections.Generic; using UnityEngine; public class move : MonoBehaviour {     public float speed;     Rigidbody rigid;     void Start()     {                 rigid = GetComponentRigidbody();     }  

    2024年02月10日
    浏览(43)
  • Unity 2D横版移动跳跃

      绿色 长方形为地表, 红色 圆形为玩家 地表挂载碰撞组件  玩家挂载钢体组件和碰撞组件  将Collision Detection设置为Continuous,Constraints勾选Freeze Rotation Z; 在Player上创建名为MoveandJump的C#脚本

    2024年02月11日
    浏览(42)
  • 【Unity游戏开发教程】零基础带你从小白到超神16——四种方法控制人物移动之角色控制器

    直接修改组件位置 去资源商城下载角色控制系统成品直接拿来用 unity提供的角色控制器组件 通过物理系统自己做

    2024年02月08日
    浏览(44)
  • Unity3D学习记录04——利用射线实现角色类似LOL的移动

    首先新建一个空白的GameObject,挂在一个MouseManager的脚本 实现思路: 通过获取鼠标点击的位置,获得该位置的信息,然后使角色移动到该位置 MouseManager脚本的代码如下:   代码解释: 先创建了一个Action类型的事件OnMouseClicked 这个是C#中事件的内容,我们可以在满足条件的时

    2024年02月08日
    浏览(53)
  • 用Unity3D制作FPS游戏的学习笔记————人物移动、利用鼠标实现视角转动和人物跳跃(含人物悬空不掉落修复)

    前言: 这是我第一次发布文章,此文章仅供参考,我也是刚学习接触untiy,在制作项目的过程中将有用的写下来记一记,以便自己之后能回头看看,各位大佬轻点喷,若有错误请麻烦积极提谢谢各位。该文章参考自B站UP主蔡先森_rm-rf发布的 【第一人称射击游戏教程2.0【已完结

    2024年04月27日
    浏览(63)
  • 【Unity小技巧】3D人物移动脚步和跳跃下落音效控制

    获取人物移动状态 脚步声控制 解释: go 的这个逻辑保证了只有在需要重新设置音频剪辑时才会执行,避免了声音的混叠和中断。如果去除这个逻辑,可能会导致声音播放不正常。 AS.pitch是用来控制音频的音调(pitch)的属性。该属性控制音频的播放速度,1.0 表示正常速度,

    2024年01月22日
    浏览(45)
  • 【Unity InputSystem】基础教程(保姆级超详细超基础!!!)

    随着Unity的不断发展,开发者们对Unity的项目输入系统要求也越来越高,经常会有项目在做多平台适配和跨平台移植时对变更输入系统而感到烦恼。而InputSystem这款插件正是Unity官方为了解决广大开发者而推出的一款新的输入方式。 相较于旧版的InputManager,InputSystem的操作虽然

    2024年02月11日
    浏览(36)
  • Unity学习笔记-角色移动

    1.使用transform进行移动 强制移动,直接改变物体的位置,例如: 对于某些碰撞不好处理,比如说怼着墙走会发生抖动。 2.使用RigidBody进行移动 借助刚体组件移动,代码要写在FixedUpdate中,如: 3.使用角色控制器控制角色的移动 角色控制器是unity的一个组件,添加了该组件后,

    2024年02月05日
    浏览(31)
  • 【Unity】常见的角色移动旋转

      在Unity 3D游戏引擎中,可以使用不同的方式对物体进行旋转。以下是几种常见的旋转方式: 欧拉角(Euler Angles) :欧拉角是一种常用的旋转表示方法,通过绕物体的 X、Y 和 Z 轴的旋转角度来描述物体的旋转。在Unity中,可以通过修改物体的 transform.eulerAngles 属性来进行欧拉

    2024年02月10日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包