unity制作类似神庙逃亡控制效果(手势检测)

news/2024/12/24 8:04:28/

前几天突然有兴趣了解一下手游相关的开发 刚开始完全没有头绪,然后慢慢了解了一些知识后,决定尝试写一个类似于神庙逃亡的游戏效果

1.准备工作

先导入素材 (官方商店里边的)机器人素材 带有跑步动作 在Animator中把跑步动画设为默认即可
搭建场景 这里我没有做什么地图 就是一个大的Plane
给Robot添加刚体和碰撞体 设置合理的大小
在神庙逃亡中摄像头必须跟随玩家的移动(由于玩家受重力的影响)我给摄像头添加一个和玩家相同的移动速度

2.代码

1.摄像机脚本

首先是摄像头脚本`

 	public GameObject Player;//玩家public float UpDis = 5;//数值方向偏移量public float AwayDis = 5;//水平方向偏移量public float smooth = 3;//顺滑度private Vector3 Targetposition;//目标位置private void Update(){Targetposition = Player.transform.position + UpDis * transform.up - AwayDis * Player.transform.forward; //实现摄像头和玩家之间的距离transform.position = Vector3.Lerp(transform.position, Targetposition, Time.deltaTime * smooth);//实现可以平滑的移动摄像头transform.LookAt(Player.transform);}

在这大致介绍一下Vector.lerp(a,b,time); 大致意思是a位置到b位置 以time的顺滑度变化(纯属个人理解)
transform.LookAt(Gameobject);旋转自身,使得当前对象的指向目标对象Gameobject所在的位置。
这样实现了摄像头跟随玩家的效果了

2.玩家脚本

private float GravitySpeed = 5;//重力感应速度private float Direct;//控制旋转方向private Vector3 BeginPos;//开始位置private void Update(){Touch();transform.Translate( Vector3.forward* Time.deltaTime * 5);Vector3 dir = Vector3.zero;//初始化坐标dir.x = Input.acceleration.x;//获取重力感应效果transform.Translate(dir * Time.deltaTime * GravitySpeed);transform.rotation = Quaternion.Euler(0, Direct, 0);}private void Touch()//检测手势检测{if (Input.touchCount < 1)//触摸屏幕点小于1个{return;}else if (Input.touchCount == 1)//触摸屏幕为1{if(Input.GetTouch(0).phase == TouchPhase.Began)//开始滑动的点{BeginPos = Input.GetTouch(0).position;//给BeginPos赋值(开始滑动的点的坐标)}}if(Input.GetTouch(0).phase ==TouchPhase.Ended&&Input.GetTouch(0).phase != TouchPhase.Canceled)//滑动结束(手抬起)并且没有取消对触摸的追踪{Vector2 pos = Input.touches[0].position;//给pos赋值为滑动结束的坐标if (Mathf.Abs(BeginPos.x - pos.x) > Mathf.Abs(BeginPos.x - pos.y))//左右滑动的影响大于上下滑动{if (BeginPos.x > pos.x)//左滑{Direct -= 90;}else //右滑{Direct += 90;}}else//上下滑动影响大于左右{if (BeginPos.y < pos.y)//向上{float timer = 0;//设置跳跃间隔(防止出现连续跳)if (timer >= 2){transform.Translate(new Vector3(0, 1, 0) * Time.deltaTime * 150);}else{timer += Time.deltaTime;}}}}}

注释写的比较明确了
然后我说一下Mathf.Abs 是取绝对值的函数
然后添加给玩家即可

3.导入到手机

导入到手机即可运行了
我们会发现和神庙逃亡一样的游戏效果
左右滑动旋转 手机重力感应移动方向
我们也可以随着时间的变化 给变人物移动的速度
差不多就这么多

如果有什么问题 可以联系我qq:1149293885


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

相关文章

Unity3D之神庙逃亡路移动效果

在游戏中很多对象都是假象,就比如人物移动效果的实现,可以是人物移动,但同样可以人物不动,场景动来实现。 下面就是一个人物不动,场景移动的效果: 下面直接上代码 void RoadMoveFP() { this.transform.Translate(-Vector3.forward * m_MoveSpeed * Time.delt…

Unity 编写类似神庙逃亡手势

1、首先我们先定义一个枚举&#xff0c;用来表示手势滑动的四个方向&#xff1a; <span style"font-size:14px;">public enum TouchDirection { Unkown,Left,Right,Up,Down }</span> 2、定义类&#xff1a;TouchInput <span style"font-size:14…

WP8手机安装《神庙逃亡》的教程

虽然神庙逃亡的最新版宣称支持512RAM的WP8手机&#xff0c;但大部分童鞋测试结果依然悲催&#xff0c;今天新锋网小编就为您带来如何顺利安装神庙逃亡的教程&#xff01; 本方法必须使用手机WIFI&#xff1a; 1.请关闭手机的商城&#xff08;如果已经打开过&#xff0c;先切回去…

神庙逃亡破解分析

分析目标:破解神庙逃亡内购 一.神庙逃亡网络验证破解 首先用Android Killer载入, 然后编译,运行,发现提示盗版软件 继续搜索dialog_initconfig_msg a方法show弹出了警告框,其主要是这个arg4.d为校验值 向上层追踪来源于这里赋值,但是这个只没法做交叉引用,只好用堆栈法来进行跟…

Problem 2121 神庙逃亡(FZU)

Problem 2121 神庙逃亡 Accept: 700 Submit: 1788 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description 话说最近穷猫猫LKity意外得到了一部ANDROID手机&#xff0c;于是&#xff0c;LKity兴奋地为自己的新机子安装了神往已久的游戏——神庙逃亡&#xf…

神庙逃亡——单纯的物理题

Description 话说最近穷猫猫LKity意外得到了一部ANDROID手机&#xff0c;于是&#xff0c;LKity兴奋地为自己的新机子安装了神往已久的游戏——神庙逃亡&#xff08;Temple Run&#xff09;。可惜&#xff0c;LKity不仅仅是一只穷猫猫&#xff0c;更是一只笨猫猫。每次她玩这款…

delphi XE模拟Android手机PDA设备的虚拟键盘按键及扫码过程输入焦点及信号接收

delphi XE模拟Android手机PDA设备的虚拟键盘按键及扫码过程输入焦点及信号接收 今天&#xff0c;群里有几位同学讨论这个问题&#xff0c;汇总了一下&#xff0c;分享出来&#xff0c;供同学们学习研究。 一、直接上代码示例 1、屏蔽应用Terminated &#xff1b;如果按了虚拟…

[FOJ 2121] 神庙逃亡

题目描述 神庙逃亡 解题思路 参考代码 #include <stdio.h> int main() {int n;scanf("%d",&n);while (n--){int s,h,vx,vy,t;scanf("%d %d %d %d",&s,&h,&vx,&vy);t s/vx;printf("%s\n",(vy*t - 5*t*t) > h?…