unity3D摇杆

news/2025/3/14 17:21:58/

转载自雨松MOMO的博客原文地址:http://blog.csdn.net/xys289187120/article/details/6961080

本章博文的目的是利用上一章介绍的游戏摇杆来控制人物模型的移动,与行走动画的播放。








如上图所示Create中的文件夹male中存放着模型动画与贴图等,这个应该是美术提供给我们的。然后将整个male用鼠标拖动到左侧3D世界中,通过移动,旋转,缩放将人物模型放置在一个理想的位置。右侧红框内设置模型动画的属性。


Animation 

        idle1  该模型默认动画名称为idle1

Animations

        size   该模型动画的数量

        Element 该模型的动画名称

Play Automatically 是否自动播放

Animation Physics 是否设置该模型物理碰撞

Animation Only if Visable 是否设置该模型仅自己显示



给该模型绑定一个脚本Controller.cs 用来接收摇杆返回的信息更新模型动画。

Controller.cs

using UnityEngine;
using System.Collections;public class Controller : MonoBehaviour {//人物的行走方向状态public const int HERO_UP= 0;public const int HERO_RIGHT= 1;public const int HERO_DOWN= 2;public const int HERO_LEFT= 3;//人物当前行走方向状态public int state = 0;//备份上一次人物当前行走方向状态//这里暂时没有用到public int backState = 0;//游戏摇杆对象public MPJoystick moveJoystick;  //这个方法只调用一次,在Start方法之前调用public void Awake() {}//这个方法只调用一次,在Awake方法之后调用void Start () {state = HERO_DOWN;}void Update () {//获取摇杆控制的方向数据 上一章有详细介绍	float touchKey_x =  moveJoystick.position.x;  float touchKey_y =  moveJoystick.position.y;  if(touchKey_x == -1){  setHeroState(HERO_LEFT);}else if(touchKey_x == 1){  setHeroState(HERO_RIGHT);}  if(touchKey_y == -1){  setHeroState(HERO_DOWN);}else if(touchKey_y == 1){  setHeroState(HERO_UP);         }  if(touchKey_x == 0 && touchKey_y ==0){//松开摇杆后播放默认动画,//不穿参数为播放默认动画。animation.Play();}}public void setHeroState(int newState){//根据当前人物方向 与上一次备份方向计算出模型旋转的角度int rotateValue = (newState - state) * 90;Vector3 transformValue = new Vector3();//播放行走动画animation.Play("walk");//模型移动的位移的数值switch(newState){case HERO_UP:transformValue = Vector3.forward * Time.deltaTime;break;	case HERO_DOWN:transformValue = -Vector3.forward * Time.deltaTime;break;	case HERO_LEFT:transformValue = Vector3.left * Time.deltaTime;break;	case HERO_RIGHT:transformValue = -Vector3.left * Time.deltaTime;break;				}//模型旋转transform.Rotate(Vector3.up, rotateValue);//模型移动transform.Translate(transformValue, Space.World);backState = state;state = newState;}}


 


http://www.ppmy.cn/news/216850.html

相关文章

手游摇杆(一)最简单的四方向摇杆

手游摇杆: (零)摇杆设计原理 (一)最简单的四方向摇杆 (二)八方向摇杆和移动范围限制 (三)跟随式摇杆 摇杆是所有手游中不可或缺的功能,是最基本的操作方式,下面用cococ creator实现的一个简单的摇杆,后续功能将基于此优化。 一 场…

【功能实现】手机游戏虚拟摇杆功能实现

【UNITY3D】 声明: 查API和根据自己的想法实现此功能。如果你喜欢我这个实现,希望你能有所收获,如果你能改进那就更棒了,但如果你想直接拿走,希望标明出处。 只需要把脚本交给画布下的空物体,自行自定义以下内容&…

GIN框架(GOLANG)讲解如何疯速入门

1.初始化项目: 1.初始化项目:go mod init 2.下载gin框架:go get -u github.com/gin-gonic/gin 3.引入:import "github.com/gin-gonic/gin" 注意点: 报错:$GOPATH/go.mod exists but should …

Js 游戏虚拟摇杆

首先说明是从这个大神这里看到的 https://blog.csdn.net/cdnight/article/details/50751832?locationNum3&fps1 一看之后下载资源需要30个币,而且下面的评论说资源不全,于是打消了下载csdn资源的念头了,其实自己也没币了, …

android studio游戏摇杆开发教程,仿王者荣耀摇杆

李子果 原创。。。 最近在做一个山寨版的王者荣耀,刚开始做的时候毫无头绪 摇杆的多点触控做的特别烂 经过几天的思考已完美解决所有问题,下面就和大家分享下这个摇杆的开发思路(此教程不包含游戏源码) 若有不正之处&#xff0…

游戏摇杆编程

文章目录 前言摇杆介绍技术特性 源程序获取摇杆功能信息获取摇杆当前状态 前言 基于前面几篇博文的介绍,我们可以进行编程,以获取游戏遥感所传回的数据。 前文回顾: WindowsAPI之joystickapi(游戏摇杆)头文件Windows API 之joystickapi(游戏…

Arduino简单实例之四_PS2游戏摇杆

1) 说明: PS2 游戏双轴摇杆传感器模块由采用金属 PS2 摇杆电位器制作,具有(X,Y)2 轴模拟输出,(Z) 1路按钮数字输出。可制作遥控器等互动作品。 SW引脚按下去时输出低电平,反之输出高电平 2) 硬件: PS2游…

Unity游戏摇杆解决方案--OneJoystick

Unity游戏摇杆解决方案–OneJoystick 通过摇杆的输入来控制玩家的移动是常见的游戏控制方案。目前市面上的遥感方案缺少具体的示例,有些方案功能又过于复杂。OneJoystick是一个相对来说轻量的遥感解决方案。它不需要特别设置Transform的pivot锚点,全部都…