1.动画制作
1。把Player帧动画直接拖入到Scene中,unity会自动生成改物体的默认idel动画。
2。选定游戏物体,Ctrl+6 打开Animation,可以手动添加帧动画。
3。在Animator中,控制动画切换。在Parameters中添加条件,右键动画,make Transition 建立转换,记得Has Exit Time取消勾选,
勾选代表播放完上一个动画才播放下一个动画,这里要直接转换。
4。脚本中。在该游戏物体脚本中 实现条件控制。
先声明Animator private Animator animator;
在Awake中初始化,animator=GetComponent<Animator>();
在if条件里完成控制。animator.setFloat(" ", ); or animator.SetBool(" ",true);
2.人物控制
1。首先给人物添加rigidbody2D。 在脚本中得到该游戏物体。
声明 private Rigidbody2D rigidbody;
Awake()中初始化,rigidbody2D=GetCompont<Rigidbody2D>();
2。人物移动。
水平移动。
定义一个速度常量 public float player_velocity=50;
水平方向的力。float h=input.GetAxis("Horizontal"); h<0,向左。h>0,向右。
if(h>0.05f) rigidbody2D.AddForce(vector2.right*player_velocity); 转向 transform.localScale=new Vector(1,1,1);
if(h<-0.05f) rigidbody2D.AddForce(-vector2.right*player_velocity); 转向 transform.localScale=new Vector(-1,1,1);
跳跃。
垂直速度,public float jump_velocity=50;
得到人物的速度。 Vector2 velocity=rigidbody2D.velocity;
按下空格跳跃 if(input.GetKeyDown(KeyCode.Space)) velocity.y=jump_velocity; rigidybody2D.velocity=velocity;
3。地面,墙壁区分。
首先为各个物体添加BoxCollider2D.和标签Tag (Player,Ground,Wall)
添加条件 bool isGround = false; bool isWall = false;
碰撞检测。void OnCollisionEnter2D(Collision collision){ if(collision,collider.tag=="Ground"){isGround=true;}}
void OnCollisionExit2D(Collision collision){ if(collision.collider.tag=="Wall"){isWall=false;} }
4。人物在墙上的操作
首先判断是否在墙上滑行。bool isSlider;
if(isGround==true || isWall=false) isSlider=false;
人物控制都是在 isSlider==false;
碰到墙转向 void ChangeDir(){ isSlider=true;if(wallTransform.position.x<transform.position.x)
{ transform.localScale=new Vector3(1,1,1); } }
5。相机跟随
获得人物位置 public Transform target;
获得相机位置Vector3 pos=transform.position;
位置差:pos.x=target.position-transform.position;
相机位置:transform.position=pos;
6。敌人控制(转向,跟随)
当角色与敌人距离小于某个数值,敌人开始朝着角色移动。
设置一个临界距离 public float attackDistance=15;
得到角色位置。PlayerTransform=GameObject.FindGameObjectWithTag("Player").transform;
距离差:float distance=Vector3.Distance(PlayerTransform,position-transform.position);
判断if(distance<attackDistance){ 转向 if(PlayerTransform.position.x<transform.position.x)
{ transform.localScale=new Vector3(-1,1,1) }
移动:Vector3 dir=PlayerTransform.position-transform.positon;
transform.position=dir.normalize*enemySpeed*Time.deltatime+transform.position;}
3.声音添加
在相机中添加一个组件AudioSource。
为相机添加一个脚本 AduioManager{ }
用单利模式
public static AudioManager _instance;
private AudioSource audio;
public AudioClip jumpAudio;
初始化 void Awake()=> _instance=this;
audio=GetComponent<AudioSource>();
调用方法:public void PlayJumpAudio(){ audio.PlayOneShot(jumpAudio); }
使用方法 :AudioManager._instance.PlayJumpAudio();
PS.Trail Render 添加头巾
Unity 忍者跑酷相关推荐
- unity3d游戏2d忍者跑酷完整项目源码分享
unity3d游戏2d忍者跑酷完整项目源码分享 免费下载地址: 链接:https://pan.baidu.com/s/1C0NXg4yVx5h4DdNAttl4zw 提取码:in2p 复制这段内容后打 ...
- unity3D实践报告-忍者跑酷
一.游戏介绍 背景:2D跑酷类游戏背景图需要与主角做相对运动,来让玩家感觉主角在移动,为实现这一效果,就需要背景图的移动,而由于机型的限制,图片资源每张大小不能超过2048*2048,所以做跑酷类游戏 ...
- 基于C#+unity的2D跑酷闯关对战冒险游戏设计 课程报告+答辩PPT+源码
目录 项目说明 1 1.1. 项目目标 1 1.2. 软硬件环境需求 2 1.3. 使用的关键技术 2 需求分析 2 2.1. 系统用例 2 2.2. 业务流程 3 概要设计 4 3.1. 功能模块设 ...
- C++版忍者跑酷小游戏(可直接复制程序源代码)
声明:本文为转载文章,特别鸣谢Harry_g_Potter博主,谢谢 话不多说,直接上代码 : #include<bits/stdc++.h> #include<window ...
- C++实现忍者跑酷小游戏
今天当了回搬运工 不多说直接上代码: #include<bits/stdc++.h> #include<windows.h> #include<stdio.h> # ...
- unity小游戏---跑酷游戏
1.两个关卡 2.有UI界面 (1)首页--UI界面--点击开始游戏即可进入第一关 (2)第一关--吃金币可得分,不能碰到障碍物,不能超过游戏边界,否则游戏结束,可控制小球左右移动.点击R退出,Q重玩 ...
- 【Unity】siki公开Unity相关课程下载目录
一.最新课程 Shader Forge入门 链接: https://pan.baidu.com/s/1n8324ujcUYmeMb40si30RQ 密码:uxuq 强大的UI编辑器 - FairyGU ...
- UNITY之资源下载地址
Unity游戏开发视频教程目录(16/4/20) 2016-08-28 siki Siki 本文是我发布的一个Unity游戏开发的学习目录,以后我会持续发布一系列的游戏开发教程,都会更新在这个页面上, ...
- 【最新计算机、电子毕业设计 本科 大专 设计+源码】
2022年 - 2023年 最新计算机.电子毕业设计 本科 大专 设计+源码 下载前必看: 纯小白教程,unity两种格式资源的使用方法,1打开现有项目.2导入package 大专毕设源码:数媒专业. ...
最新文章
- 说说你对binlog、redo log和undo log的理解
- 牛客多校4 - Ancient Distance(树上倍增+dfs序+线段树)
- 张高兴的 .NET Core IoT 入门指南:(五)串口通信入门
- 培养创造性思维的20个技巧
- @Scheduled cron表达式
- Linux内核与文件系统分析
- MYSQL语句:创建、授权、查询、修改、统计分析等 一 用户的创建、权限设置、删除等...
- 【机器视觉】线阵相机模型说明以及使用HALCON标定助手对线阵相机进行标定
- 嘉楠科技多位高管退出,知情人称管理层夺权内斗
- 思科二层冗余技术对比---PortChannel/StackWise/VSS/vPC
- [Excel 替换数字/数值格式混乱] ,txt协助解决
- PWM/转速单闭环/转速电流双闭环电机控制Simulink仿真
- 爬虫工程师必备技术栈——加密解密以及字符编码原理
- 协作乐高 All In One:DAO工具大全
- 【 Iptables 】
- intellidea 应用问题
- 关于TC油封-什么是TC油封?
- 基于51单片机的电压采集(ADC0809)
- “万物盲盒”的时代,企业如何玩转“盲盒”经济?
- NeurIPS2019 | 17篇论文带你展望图机器学习发展趋势
热门文章
- JS 阻止冒泡 阻止默认
- js阻止冒泡兼容写法
- 快抖创客丨抖音怎么带货?抖音带货有什么标准?
- openfire android 发送图片,基于openfire+smack开发Android即时聊天应用[四]-单人聊天、群聊、发送接收文件等...
- titan java 写入_Titan DB的一些问题
- 用友YonSuite与旺店通数据集成对接方案
- php simplexml 函数,PHP中SimpleXML函数简介
- 支付宝批量转账系统解析
- jdk8的安装和环境配置及IDEA完整安装教程
- JAVA基础09对象和类