2d游戏制作的笔记

save Layout 增加配置

Packges文件夹

	插件

调整视野

鼠标中键			拉近拉远
鼠标右键 平移
Alt+鼠标左键 移动视角

Pivot/Center

当前物体中心和多个物体共同的中心

Local/Global

全局坐标

步移工具

工具:

1.Sprite Renderer
Order in Layer 可以调节物体的前后关系 值越大越在前面

不要乱改script文件名

Start()方法只会执行一次,类似于初始化
Update()方法会不断循环执行
Time.deltaTime 表示多久时间可以跑一次Loop 解决不同电脑运作速度不同
如果将属性设置为public或者加入[SerializeField] 就可以直接在Unity中调整

Rigidbody 2D 刚体

类似真实物体,可以自由落体

Collider 碰撞

给两个物体都增加Collider组件,可以碰撞在一起
is Trigger 不会碰撞在一起,只作为监测

判断是否撞在一起

 private void OnCollisionEnter2D(Collision2D other) {
if(other.gameObject.tag == "Floor1") Debug.Log("撞到第一种阶梯");
else if(other.gameObject.tag=="Floor2")Debug.Log("撞到第二种阶梯");}

判断是否经过这个物体 需要给对应物体勾选 isTrigger

private void OnTriggerEnter2D(Collider2D other) {
if(other.gameObject.tag=="DeathLine"){
Debug.Log("你输了");
}
}

将你制作好的样板放入assets文件中,可以快速拖去重复相同的样板

	overris 还可以修改所有样板

代码创建物体 ,并放入另一个物体下

 Instantiate(FloorPrefabs[r],transform);

删除物件

 Destroy(gameObject);

控制父物件去更新子物件

 transform.parent.GetComponent<FloorManagger>().SpawnFloor();

让物件不断移动

 transform.Translate(0,MoveSpeed*Time.deltaTime,0);

控制物件失去碰撞功能

  currentFloor.GetComponent<BoxCollider2D>().enabled=false;

法线法向量

垂直接触面

让某个物体不显现

 HpBar.transform.GetChild(i).gameObject.SetActive(false);//反之为true

使用UI库

using UnityEngine.UI;

人物水平翻转,转身

 GetComponent<SpriteRenderer>().flipX=false;

给人物添加动画

component功能选择animator
创建animator controller
windows -> animation
创建动作clip
将贴图或者录制好的图片放入
调出animator 窗口
选择条件
bool anim.SetBool("run",true);
trigger anim.SetTrigger("hurt");
设置Layers权重值
选择箭头线
settings
可以将切换动画的时间全部设为零,√可以去掉
exit time 为动画闪烁的次数

添加声音

component -> audioSourse
取消勾选play on wake 一开始就播放
other.gameObject.GetComponent<AudioSource>().Play();

游戏暂停

Time.timeScale=0f;

UI button

on click()
选择对象和方法

继续游戏

using UnityEngine.SceneManagement;
public void Replay()
{
Time.timeScale=1f;
SceneManager.LoadScene("SampleScene");
}

unity---2d游戏杂记的更多相关文章

  1. Unity 2D游戏开发教程之精灵的死亡和重生

    Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...

  2. Unity 2D游戏开发教程之摄像头追踪功能

    Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...

  3. Unity 2D游戏开发教程之2D游戏的运行效果

    Unity 2D游戏开发教程之2D游戏的运行效果 2D游戏的运行效果 本章前前后后使用了很多节的篇幅,到底实现了怎样的一个游戏运行效果呢?或者说,游戏中的精灵会不会如我们所想的那样运行呢?关于这些疑问 ...

  4. Unity 2D游戏开发教程之使用脚本实现游戏逻辑

    Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...

  5. Unity 2D游戏开发教程之游戏精灵的开火状态

    Unity 2D游戏开发教程之游戏精灵的开火状态 精灵的开火状态 “开火”就是发射子弹的意思,在战争类型的电影或者电视剧中,主角们就爱这么说!本节打算为精灵添加发射子弹的能力.因为本游戏在后面会引入敌 ...

  6. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  7. Unity 2D游戏开发教程之为游戏场景添加多个地面

    Unity 2D游戏开发教程之为游戏场景添加多个地面 为游戏场景添加多个地面 显然,只有一个地面的游戏场景太小了,根本不够精灵四处活动的.那么,本节就来介绍一种简单的方法,可以为游戏场景添加多个地面. ...

  8. Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏

    Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏 即使是如今,非常多初学游戏开发的同学.在谈到Unity的时候.依旧会觉得Unity仅仅能用于制作3D游戏的. 实际上.Unity在2013 ...

  9. unity 2d 游戏优化之路 遇坑记录

    情景说明:  unity 出的Android包,在目前一些主流机型跑都没有问题,但是在 小米3 这种比较老的机器上跑,报如下错误 GLSL compilation failed, no infolog ...

  10. unity 2d游戏 按y坐标排序子对象

    List<Transform> objs = new List<Transform>(); for (int i = 0; i < transform.childCoun ...

随机推荐

  1. AWS 6R

    "The 6 R's": 6 Application Migration Strategies "The 6 R's": 6 Application Migra ...

  2. Polymer API开发指南 (二)(翻译)

    公开 property 当你公开一个 Polymer 元素的 property 名字时,就等于把这个 property 设置为公开API了.公开 property 会有如下的特性: 支持声明数据双向绑 ...

  3. 浅析Node与Element

    起因 起因有二: 在看winter老师的分享:<一个前端的自我修养>时,有注意到这么一幅图,里面有写childNode和children属性. 昨天有学弟问起我,能否自己定义一个所有元素节 ...

  4. 原生ES6写的Web游戏:ES6-Mario,小美女,小帅哥快来玩啊~~

    ? ES6-Mario 这是一个用原生ES6语法和HTML5新特性写成的Web 游戏. 通过这个项目,你可以在实践中对ES6的主要内容.HTML Canvas 相关API以及Webpack的基础配置有 ...

  5. SpringCloud微服务治理技术入门(SCN)

    1.集群.分布式.微服务 首先先理解三个感念 什么是集群?: 同一个业务,部署在多个服务器上,目的是实现高可用,保证节点可用! 什么是分布式?: 一个业务分拆成多个子业务,部署在不同的服务器上,每个子 ...

  6. python根据日期判断星期几(超简洁)

    代码: from datetime import datetime def getWeek(week): print(date + "是星期" + str(week + 1)) d ...

  7. 【Android开发】Webview 和 JS 交互问题

    一,安卓原生调用JS代码 1,js代码: function handlePasteDataFromApp(pasteStr) { showInfo('pasteData: aaaaa' + JSON. ...

  8. EMS邮箱数据库常用命令(二)

    1.查询邮箱数据库的使用空间 查询Exchange环境中所有邮箱数据库. 键入以下命令 Get-MailboxDatabase -Status | FL name,DatabaseSize 命令执行后 ...

  9. 好用的表单验证工具 vuelidate

    Vue validation(表单验证)--vuelidate 表单是用户那里收集的数据的工具.如果它没有收集到你需要的数据,或者收集到的数据不对,那么你的表单就没有达到它的目的.这就是为什么我们需要 ...

  10. 面试突击39:synchronized底层是如何实现的?

    想了解 synchronized 是如何运行的?就要先搞清楚 synchronized 是如何实现? synchronized 同步锁是通过 JVM 内置的 Monitor 监视器实现的,而监视器又是 ...