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 忍者跑酷相关推荐

  1. unity3d游戏2d忍者跑酷完整项目源码分享

    unity3d游戏2d忍者跑酷完整项目源码分享 免费下载地址: 链接:https://pan.baidu.com/s/1C0NXg4yVx5h4DdNAttl4zw 提取码:in2p 复制这段内容后打 ...

  2. unity3D实践报告-忍者跑酷

    一.游戏介绍 背景:2D跑酷类游戏背景图需要与主角做相对运动,来让玩家感觉主角在移动,为实现这一效果,就需要背景图的移动,而由于机型的限制,图片资源每张大小不能超过2048*2048,所以做跑酷类游戏 ...

  3. 基于C#+unity的2D跑酷闯关对战冒险游戏设计 课程报告+答辩PPT+源码

    目录 项目说明 1 1.1. 项目目标 1 1.2. 软硬件环境需求 2 1.3. 使用的关键技术 2 需求分析 2 2.1. 系统用例 2 2.2. 业务流程 3 概要设计 4 3.1. 功能模块设 ...

  4. C++版忍者跑酷小游戏(可直接复制程序源代码)

    声明:本文为转载文章,特别鸣谢Harry_g_Potter博主,谢谢 话不多说,直接上代码 : #include<bits/stdc++.h>     #include<window ...

  5. C++实现忍者跑酷小游戏

    今天当了回搬运工 不多说直接上代码: #include<bits/stdc++.h> #include<windows.h> #include<stdio.h> # ...

  6. unity小游戏---跑酷游戏

    1.两个关卡 2.有UI界面 (1)首页--UI界面--点击开始游戏即可进入第一关 (2)第一关--吃金币可得分,不能碰到障碍物,不能超过游戏边界,否则游戏结束,可控制小球左右移动.点击R退出,Q重玩 ...

  7. 【Unity】siki公开Unity相关课程下载目录

    一.最新课程 Shader Forge入门 链接: https://pan.baidu.com/s/1n8324ujcUYmeMb40si30RQ 密码:uxuq 强大的UI编辑器 - FairyGU ...

  8. UNITY之资源下载地址

    Unity游戏开发视频教程目录(16/4/20) 2016-08-28 siki Siki 本文是我发布的一个Unity游戏开发的学习目录,以后我会持续发布一系列的游戏开发教程,都会更新在这个页面上, ...

  9. 【最新计算机、电子毕业设计 本科 大专 设计+源码】

    2022年 - 2023年 最新计算机.电子毕业设计 本科 大专 设计+源码 下载前必看: 纯小白教程,unity两种格式资源的使用方法,1打开现有项目.2导入package 大专毕设源码:数媒专业. ...

最新文章

  1. 说说你对binlog、redo log和undo log的理解
  2. 牛客多校4 - Ancient Distance(树上倍增+dfs序+线段树)
  3. 张高兴的 .NET Core IoT 入门指南:(五)串口通信入门
  4. 培养创造性思维的20个技巧
  5. @Scheduled cron表达式
  6. Linux内核与文件系统分析
  7. MYSQL语句:创建、授权、查询、修改、统计分析等 一 用户的创建、权限设置、删除等...
  8. 【机器视觉】线阵相机模型说明以及使用HALCON标定助手对线阵相机进行标定
  9. 嘉楠科技多位高管退出,知情人称管理层夺权内斗
  10. 思科二层冗余技术对比---PortChannel/StackWise/VSS/vPC
  11. [Excel 替换数字/数值格式混乱] ,txt协助解决
  12. PWM/转速单闭环/转速电流双闭环电机控制Simulink仿真
  13. 爬虫工程师必备技术栈——加密解密以及字符编码原理
  14. 协作乐高 All In One:DAO工具大全
  15. 【 Iptables 】
  16. intellidea 应用问题
  17. 关于TC油封-什么是TC油封?
  18. 基于51单片机的电压采集(ADC0809)
  19. “万物盲盒”的时代,企业如何玩转“盲盒”经济?
  20. NeurIPS2019 | 17篇论文带你展望图机器学习发展趋势

热门文章

  1. JS 阻止冒泡 阻止默认
  2. js阻止冒泡兼容写法
  3. 快抖创客丨抖音怎么带货?抖音带货有什么标准?
  4. openfire android 发送图片,基于openfire+smack开发Android即时聊天应用[四]-单人聊天、群聊、发送接收文件等...
  5. titan java 写入_Titan DB的一些问题
  6. 用友YonSuite与旺店通数据集成对接方案
  7. php simplexml 函数,PHP中SimpleXML函数简介
  8. 支付宝批量转账系统解析
  9. jdk8的安装和环境配置及IDEA完整安装教程
  10. JAVA基础09对象和类