核心1、新建工程,取名Exercise_2D。
2、新建个文件夹(2D_Assets),将所有素材资源,导入或拖入。
3、修改图片像素为16或32,或适合人物的尺寸。
4、新建个空物体,取名Back,然后 直接拖入背景图片 作为子物体。然后在Back父物体上添加Collider。
5、调整 相机的Size,使能有一个较开阔的视野。
6、新建 Sprites并取名Player,然后 将第一帧的人物图片拖入sprites。然后添加 Animator组件。
7、新建文件夹(Animation_Player),新建Animator(取名Player),将其拖入Player物体里的Animator组件。
8、选中Player,在Animation窗口,点击Create新建Animation。(取名:idle、run、jump)
9、将 各个人物帧图片拖入idle的Animation窗口,调整Samples频率。
10、对 Player添加Rigidbody2D刚体,和Collider2D碰撞器组件。然后 锁定刚体的Z轴和调整碰撞器。
11、对 Player添加脚本(PlayerController)。
       1.获取private Rigibody2D、float speed;
       2.Start里:rb2D=GetComponent<Rigibody2D>();
       3.新建方法PlayerMove(); 里面写 水平移动的代码、朝向代码、动画播放。***(移动和跳跃代码放FixedUpdate里)
         3.1.动画播放:做切换动画的条件,并 写播放动画的代码
12、在Player脚本里,新建方法playerJump(); 里面写 跳跃代码、动画播放。
       1.创建 bool值(jumpDown,表示是否按下跳跃键),创建float值(jumpForce,表示跳跃力)
       2.创建3个if方法,表示:跳跃力、起跳动画、下落动画。
13、对 摄像机添加脚本(CameraController)。
       1.获取 Player的Transform。
       2.thansform.position只有x轴跟随玩家
******(目前来说,简单的移动就完成了,没有判断是否接触地面,所以现在可以无限跳跃)******

//面试遇到的需求:

1、点击屏幕左右侧,控制人物移动
     1.通过 从相机发出的射线来判断
     2.核心代码:RaycastHit2D hit = Physics2D.Raycast();//获取射线碰撞到的物体
     3.判断碰撞到的物体是什么标签tag。
     4.新建2个Sprites,分别放在屏幕左右两侧,并标签:LeftMove,RightMove

/// <summary>
/// 玩家控制器
/// </summary>
public class PlayerController : MonoBehaviour
{private Rigidbody2D rb2D;public float speed;//移动速度private Animator anim;public bool jumpDown;public float jumpForce;private void Start(){rb2D = GetComponent<Rigidbody2D>();anim = GetComponent<Animator>();}private void Update(){if (Input.GetButtonDown("Jump")){jumpDown = true;}if (Input.GetMouseButtonUp(0)){//抬起 鼠标时,要停止移动rb2D.velocity = new Vector2(0, rb2D.velocity.y);//Debug.Log("AAA");}}private void FixedUpdate(){PlayerMove();//正常键盘控制PlayerJump();MouseMove();//点击屏幕来 控制角色}//点击屏幕来 移动角色public void MouseMove(){if (Input.GetMouseButton(0)){RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);if (hit.collider != null){switch (hit.collider.gameObject.tag){case "Player":rb2D.velocity = new Vector2(rb2D.velocity.x, jumpForce);break;case "LeftMove":rb2D.velocity = new Vector2(-speed, rb2D.velocity.y);transform.localScale = new Vector3(-1, 1, 1);break;case "RightMove":rb2D.velocity = new Vector2(speed, rb2D.velocity.y);transform.localScale = new Vector3(1, 1, 1);break;}}}anim.SetFloat("Run", Mathf.Abs(rb2D.velocity.x));if (rb2D.velocity.y > 0){anim.SetBool("Jump", true);}if (rb2D.velocity.y < 0){anim.SetBool("Jump", false);}}//玩家水平移动(键盘)public void PlayerMove(){float _horizontal = Input.GetAxisRaw("Horizontal");rb2D.velocity = new Vector2(_horizontal * speed, rb2D.velocity.y);if (_horizontal != 0){transform.localScale = new Vector3(_horizontal, 1, 1);}anim.SetFloat("Run", Mathf.Abs(_horizontal));}//玩家跳跃(键盘)public void PlayerJump(){if (jumpDown){rb2D.velocity = new Vector2(rb2D.velocity.x, jumpForce);jumpDown = false;}if (rb2D.velocity.y > 0){anim.SetBool("Jump", true);}if (rb2D.velocity.y < 0){anim.SetBool("Jump", false);}}}
/// <summary>
/// 相机控制器
/// </summary>
public class CameraController : MonoBehaviour
{public Transform player;private void Update(){transform.position = new Vector3(player.position.x, transform.position.y, transform.position.z);}}

横版2D小游戏开局_学习整理记录相关推荐

  1. Unity 2D横版通关 小游戏——幻城探险 C#

    Unity 2D横版通关 小游戏 C#  分辨率 1920*1980 点击这里下载项目工程 本项目,为个人练习demo,美术资源原创自合作美工. 本项目涉及到的功能: 1.UI:开始游戏按钮,游戏帮助 ...

  2. 基于 Python 的横版 2D 动作类小游戏

    基于 Python 的横版 2D 动作类小游戏 游戏代码 游戏代码 游戏整体代码(基于 pygame 模块开发) // An highlighted block import pygame impor ...

  3. 基于Unity的2D小游戏 SpeedDown 开发笔记(学习bilibili@[M_Studio]的教学视频

    基于Unity的2D小游戏 SpeedDown 开发笔记(学习bilibili@M_Studio的教学视频) 主要内容:在Sunnyland游戏的设计基础上,新增了物理组件Joint系列.DrawGi ...

  4. cocos2d-x 如何制作一个类马里奥的横版平台动作游戏 1 献给所有对动作游戏有爱的朋友

    本文翻译自国外著名IOS源码教学商业网站raywenderlich 的 IOS Game Start Kits三件套之一的Platformer Game/平台动作游戏的前奏曲,另一个是Beat'Em ...

  5. cocos2d-x 如何制作一个类马里奥的横版平台动作游戏 1 献给所有对动作游戏有爱的朋友...

    本文翻译自国外著名IOS源码教学商业网站raywenderlich 的IOS Game Start Kits三件套之一的Platformer Game/平台动作游戏的前奏曲,另一个是Beat'Em u ...

  6. 如何制作一个横版格斗过关游戏 Cocos2d x 2 0 4

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...

  7. 如何制作一个横版格斗过关游戏 Cocos2d-x 2.0.4

    本文原创版权归 csdn 无幻 所有,转载请详细标明原创作者及出处,以示尊重! 作者:无幻 原文:http://blog.csdn.net/akof1314/article/details/85491 ...

  8. 2048网页版html项目报告,jQuery编写网页版2048小游戏

    大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了,但是自己实现起 ...

  9. 怎样制作一个横版格斗过关游戏 Cocos2d-x 2.0.4

     本文实践自 Allen Tan 的文章<How To Make A Side-Scrolling Beat 'Em Up Game Like Scott Pilgrim with Coco ...

最新文章

  1. 织梦生成html加速,加快DEDECMS静态html网页生成速度的方法
  2. python中if __name__ == '__main__': 的解析
  3. 数据结构二叉树的所有基本功能实现。(C++版)
  4. 为什么恋舞显示连接服务器失败,恋舞模式全攻略与技巧
  5. r语言 rgl 强制过程中_一个R语言中操纵矢量空间数据的标准化工具—sf
  6. sql 百分数_SQL经典50题笔记
  7. Java中的Enum的使用与分析
  8. 漫画:为什么程序员没有女友?
  9. javascript进制转换_JavaScript 加减危机——为什么会出现这样的结果?
  10. 纯数学教程 Page 203 例XLI (2)
  11. 算法——Java实现栈
  12. 【Java】生成随机数的两种方法
  13. 如何在腾讯云学生服务器搭建个人网站——配置web开发环境详细步骤
  14. office2016 excel表格如何插入复选框
  15. html5一个圆圈旋转,Javascript实现可旋转的圆圈实例代码
  16. 中小企业OA系统自动办公软件
  17. [2020.12.6 解决docker容器乱码问题] 一劳永逸export env LANG=C.UTF-8永久支持中文,无需Dockerfile重建镜像
  18. 时间刻度线css,纯CSS时间轴列表
  19. 《论语》原文及其全文翻译 学而篇1
  20. mfc中StretchBlt缩放图像失真问题【zozo】

热门文章

  1. 几何画板5.05免安装版下载链接
  2. 《树莓派项目实战》第八节 使用光敏电阻传感器检测环境中是否有光照
  3. 快速排序的划分方法(5种)
  4. 计算机的隐藏功能文字,键盘上那些隐藏的快捷键,内有彩蛋呦!
  5. php 获取当天是星期几,php 获取当天或某个日期是星期几
  6. 计算机毕业设计Java宠物交易平台(源码+系统+mysql数据库+lw文档)
  7. WIN10+VS2015+PCL1.8.1的配置
  8. Ubuntu花屏、出现黑色条纹原因分析
  9. 《气场修习术》阅读笔记
  10. 再见了,我的散装研发管理平台;再见了,4台ECS!