Unity实现人物平滑转身

今天要实现的功能是利用WASD或是方向键实现人物平滑转身。

1.首先搭建一个简易的场景和人物,我在这里利用一个圆柱加一个cube代表人物,其次保证人物模型的本地坐标与世界坐标保持统一,如图所示

2.在人物身上添加PlayerController脚本,源码如下:

using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {
 float ver = 0;
 float hor = 0;
 public float turnspeed = 10;

 // Use this for initialization
 void Start () {

 }

 // Update is called once per frame
 void Update () {
 hor = Input.GetAxis("Horizontal");
 ver = Input.GetAxis("Vertical");

 }
 void Rotating (float hor, float ver)
 {
 //获取方向
 Vector3 dir = new Vector3 (hor,0,ver);
 //将方向转换为四元数
 Quaternion quaDir = Quaternion.LookRotation(dir,Vector3.up);
 //缓慢转动到目标点
 transform.rotation = Quaternion.Lerp(transform.rotation,quaDir,Time.fixedDeltaTime*turnspeed);

 }

 void FixedUpdate(){

 if(hor!= 0 ||ver!= 0 ){
  //转身
  Rotating(hor,ver);

  }
 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Unity实现人物旋转和移动效果

    本文实例为大家分享了Unity实现人物旋转和移动的具体代码,供大家参考,具体内容如下 旋转 using System.Collections; using System.Collections.Generic; using UnityEngine; public class MouseLook : MonoBehaviour { public enum RotationAxes { MouseXandY = 0, MouseX = 1, MouseY = 2 } public RotationA

  • Unity3D实现虚拟按钮控制人物移动效果

    本文为大家分享了Unity3D实现虚拟按钮控制人物移动的具体代码,供大家参考,具体内容如下 创建Image的UI组件,在Image下新建一个Button按钮.在Image 和Button上拖进Sprite图片 在Button按钮上挂载该脚本 using System.Collections; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class MyJoystick : Mono

  • Unity3D实现人物移动示例

    一个是通过W.A.S.D来移动人物(示例一),另个是按屏幕上的按钮来移动人物(示例二).很简单,只改了几行代码. 下面是"Assets"文件夹里面的资源. 示例一: using System.Collections; using System.Collections.Generic; using UnityEngine; public class E3_07keyboard : MonoBehaviour { //动画数组 private Object[] animUp; privat

  • Unity3D实现人物转向与移动

    在网上有非常多通过射线方式实现的人物行走控制脚本,可是假设仅仅是想通过键盘按键来控制的话.比方进行第三人称视角控制,事实上仅仅须要进行简单的角度变换就可以.思路例如以下: 1.依照顺时针方向设定前.右.后.左分别为0,1,2,3. 2.设定状态初值0,即朝向前方. 3.通过当前方向值减去前一次方向值,乘以90°即为转向角,然后进行旋转变换就可以. using UnityEngine; using System.Collections; using System.Linq; public clas

  • Unity实现人物平滑转身

    今天要实现的功能是利用WASD或是方向键实现人物平滑转身. 1.首先搭建一个简易的场景和人物,我在这里利用一个圆柱加一个cube代表人物,其次保证人物模型的本地坐标与世界坐标保持统一,如图所示 2.在人物身上添加PlayerController脚本,源码如下: using UnityEngine; using System.Collections; public class PlayerController : MonoBehaviour { float ver = 0; float hor =

  • Android游戏开发实践之人物移动地图的平滑滚动处理

    如图所示为程序效果动画图 地图滚动的原理 在本人之前博客的文章中介绍过人物在屏幕中的移动方式,因为之前拼的游戏地图是完全填充整个手机屏幕的,所以无需处理地图的平滑滚动.这篇文章我着重的向 大家介绍一下控制人物移动后地图滚动的处理方式.举个例子 如上图所示 比如人物向右移动,如果地图贴在屏幕左边边界 将先移动人物在地图的坐标,当人物在屏幕中超过三分之二后 则将地图向人物行走的反方向移动给玩家一种人物还在向右移动的假象,其实这时候人物只是播放向右行走的动画 在屏幕中的坐标不变 ,当地图向人物行走反方

  • unity实现手机端摇杆控制人物移动

    前言 玩过王者荣耀或者荒野行动的人,都知道,手机左下方或右下方都会有一个摇杆,滑动摇杆可以让人物向360度方向移动.没有玩过的可以看看下方图片(荒野行动手机端为例).本篇就来讲解如何使用unity制作摇杆控制人物移动. 2种方法: 1.GUITexture制作,是unity自带的一个joystick组件,主要由GUITexture和一个JS脚本构成.优点:unity自带,使用简单方便.缺点是无法适应屏幕大小. 2.EasyTouch插件,可以实现1的功能并且克服了1的缺陷,可以适应屏幕大小.本篇

  • unity实现摄像头跟随

    代码很简单,这里就不多废话了,直接奉上代码 using UnityEngine; using System.Collections; public class FllowTarget : MonoBehaviour { public Transform character; //摄像机要跟随的人物 public float smoothTime = 0.01f; //摄像机平滑移动的时间 private Vector3 cameraVelocity = Vector3.zero; private

  • Unity Blend Tree动画混合树使用入门教程

    介绍 在动画与动画的切换过程中,常因为两个动画之间的差距过大,而显得动画的切换很不自然. 这时候就需要动画混合树Blend Tree这个功能.使用混合树可以将多个动画混合在一起,例如在处理角色的移动中,走动画与跑动画切换的时候,在走动画与跑动画中生成多个过渡用的插值动画以达到平滑得切换的功能. 创建混合树 在Animator窗口的空白处右键,Create State > From New Blend Tree,然后双击Blend Tree进入混合树.笔者使用的是unity2019.4的版本,现在

  • Unity UGUI教程之实现滑页效果

    简介 项目需要...直接展示效果吧: 原理 使用UGUI提供的ScrollRect和ScrollBar组件实现基本滑动以及自己控制每次移动一页来达到滑页的效果. 实现过程 1.创建两个panel,上面的panel用于显示,下面的panel用于存放按钮 2.在TopPanel上添加ScrollRect脚本,用于滑动 3.在TopPanel下创建一个新的Panel,并在子Panel下拜访要显示的对象 4.将该子Panel设置为ScrollRect的活动对象 5.为ScrollRect添加Scroll

  • unity实现UI元素跟随3D物体

    本文实例为大家分享了unity实现UI元素跟随3D物体的具体代码,供大家参考,具体内容如下 在Canvas不同的渲染模式(RenderMode)下实现UI跟随3D物体 当Canvas.RenderMode为Screen Space-Overlay时 利用WorldToScreenPoint(worldPos)将物体的世界坐标转换成屏幕坐标,实时更新UI的坐标: using UnityEngine; using System.Collections; public class FollowWorl

  • Unity UGUI通过摇杆控制角色移动

    本文实例为大家分享了Unity UGUI通过摇杆控制角色移动的具体代码,供大家参考,具体内容如下 简单版:控制方块的移动. 进阶版:控制人物的移动 知识铺垫: 首先我们必须要知道,在Unity的UGUI中,对UI的操作有八个回调,分别需要实现八个接口.分别是: 鼠标进入,鼠标离开,鼠标点下,鼠标抬起,鼠标开始拖拽,鼠标拖拽中,拖拽结束 如下所示: 我们可以先对这几个接口方法进行一下测试: 测试结束后,大家就会对这些接口方法有一些初步的了解. using UnityEngine; using Un

  • Unity实现喷漆效果

    本文实例为大家分享了Unity实现喷漆效果展示的具体代码,供大家参考,具体内容如下 喷漆功能 **应用场景:**如墙上的标语贴花,汽车上的喷漆等. 选择方案: 1.当然实现方法各式各异,最最最简单,也是最"不堪入目"的方法是直接给一个面片,然后获取喷漆位置,加上一个要喷漆表面法线方向的偏移,作为最终面片放置位置,当然,不要忘了设置面片的方向.这种方法虽然说简单,但是效果并不理想,会出经常现与其他物体穿插的情况,如果游戏中曲面太多,那么这个方案基本没法看. 2.对于个别特殊的需求来讲,比

随机推荐