【SIKIA计划】_05_Unity5.3开发2D游戏笔记
一.界面基本操作
01.Project基本分类
【Audios】音效
【Material】材质
【Prefabs】预制
【Scenes】场景
【Scripts】脚本
【Sprites】精灵
02.Project丶图片属性
——Inspector
————Texture Type
——————Sprite(2D and UI) 因为该项目是2D小游戏,所以选择2D andUI
————Sprite Mod
————PackingTag
————Pixels Per Unit 图片放置比例,一百像素游戏中为一米
————Pivot
03.Project丶物品属性
tag 标签
layer 操作图层(可以自定义添加)
Sortinglayers 排序图层
Order in Layer 图层中排序(数字越大显示在前面)
04.Edit丶project settings 项目设置
一些通用属性的设置如输入键
05.Layers 显示图层
(界面右上角)
Layers 点击要锁住的图层的锁,锁住不可选
0.6 组件
【Box collider 2D】碰撞检测
Size 范围大小,与物体吻合
会与其他collider 2D发生碰撞
【Rigidbody 2D】刚体
给予物体运动属性
【Audio Source】音效
音效播放控制
二.代码
键盘输入:
public KeyCode upKey;
//声明使用键盘输入,upKey具体键位需U3D中指向
if(Input.GetKey(upKey)){}
//判断是否按下
Input.GetKey //按下触发
Input.GetKeyDown //按下只触发一次
Input.GetKeyUp //弹起触发
刚体组件:
private Rigidbody2D rigidbody2D;
void Start() {
rigidbody2D = GetComponent<Rigidbody2D>();
//指定实例
rigidbody2D.velocity = new Vector2(speed,speed);
//改变刚体速度,创建并调用二维空间数
}
碰撞检测:
void OnCollisionEnter2D(Collision2D col){
if (col.collider.tag == "Player") {
//二维数组改变刚体速度
//标签的运用
寻找物体:
private BoxCollider2D rightWall;
rightWall = transform.Find("rightWall").GetComponent<BoxCollider2D>();
地址转化:
Vector3 tempPosition
= Camera.main.ScreenToWorldPoint(
new Vector2(Screen.width, Screen.height));
//界面顶点是左下角,所以Screen.width, Screen.height是右上角
//Camera.main顶点是中心,所以右上角相当于界面长或宽的一半
地址生成:
upWall.transform.position = new Vector3(0, tempPosition.y+0.5f, 0);
upWall.size = new Vector2(tempPosition.x * 2, 1);
//upWall是collider2D组件
调用他类:
public class GameManager : MonoBehaviour {
private static GameManager _instance;
public static GameManager Instance
{
get
{
return _instance;
}
}
void Awake()
{
_instance = this;
}
GameManager.Instance.ChangeScore(col.gameObject.name);
//外界调用
GameObject.Find("ping-pong ball").SendMessage("Reset");
//发送信息
运行跟踪:
Debug.Log(rigidbody2D.velocity);
界面UI:
public Text score1Text;
public Text score2Text;
public void ChangeScore(string wallName)
{
if (wallName == "leftWall")
{
score1++;
}
else if (wallName == "rightWall")
{
score2++;
}
score1Text.text = score1.ToString();
score2Text.text = score2.ToString();
//数据更新
}
音效:
private AudioSource audio;
void Start()
{
audio = GetComponent<AudioSource>();
}
void OnCollisionEnter2D()
//碰撞时触发
{
audio.pitch = Random.Range(0.8f, 1.2f);
//随机播放时长
audio.Play();
}
游戏发布:
场景拖拽过去
ico图标
Default is Full Screen 默认全屏
Display Resolution Dialog 选择分辨率
Splash Image 开始logo
【SIKIA计划】_05_Unity5.3开发2D游戏笔记的更多相关文章
- Atitit 开发2d游戏的技术选型attilax总结
Atitit 开发2d游戏的技术选型attilax总结 1.1. 跨平台跨平台:一定要使用跨平台的gui技术,目前最好的就是h5(canvas,webgl,dom) +js了..1 1.2. 游戏前后 ...
- Siki_Unity_1-8_使用Unity开发2D游戏_PongGame
Unity 1-8 使用Unity开发2D游戏 PongGame 任务1:演示 http://pan.baidu.com/s/1pKUHsev; up2i 任务2:案例介绍 创建PongGame,注意 ...
- Unity3D系列教程--使用免费工具在Unity3D中开发2D游戏 第一节
声明: 本博客文章翻译类别的均为个人翻译,版权全部.出处: http://blog.csdn.net/ml3947,个人博客:http://www.wjfxgame.com. 译者说明:这是一个系 ...
- UWP简单示例(三):快速开发2D游戏引擎
准备 IDE:VisualStudio 2015 Language:VB.NET/C# 图形API:Win2D MSDN教程:UWP游戏开发 游戏开发涉及哪些技术? 游戏开发是一门复杂的艺术,编码方面 ...
- UWP简单示例(三):快速开发2D游戏引擎
准备 IDE:Visual Studio 图形 API:Win2D MSDN 教程:UWP游戏开发 游戏开发涉及哪些技术? 游戏开发是一门复杂的艺术,编码方面你需要考虑图形.输入和网络 以及相对独立的 ...
- 【SIKIA计划】_10_Unity5.1UI系统-UGUI笔记
Canvas——TextEventSystem 事件系统 0.滚动文本列表(隐藏背景)/Scroll/maskimage[Scroll Rect][Mask]——text(拉伸到显示全部)Scroll ...
- 【SIKIA计划】_11_Unity动画插件-DOTween笔记
[插值移动]using DG.Tweening;public class GetStart:MomoBehaviour{ public Vector3 myValue = new Vector3(0, ...
- Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏
Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏 即使是如今,非常多初学游戏开发的同学.在谈到Unity的时候.依旧会觉得Unity仅仅能用于制作3D游戏的. 实际上.Unity在2013 ...
- 【使用Unity开发Windows Phone上的2D游戏】(1)千里之行始于足下
写在前面的 其实这个名字起得不太欠当,Unity本身是很强大的工具,可以部署到很多个平台,而不仅仅是可以开发Windows Phone上的游戏. 只不过本人是Windows Phone 应用开发出身, ...
随机推荐
- Mina使用总结(三)MinaClient
简单的Mina客户端代码MinaSimpleClient.java: package com.bypay.mina.client; import java.net.InetSocketAddress; ...
- IIS : Add the server variable name to the allowed server variable list.
IIS下设置反向代理访问时报错:将服务器变量名添加到允许的服务器变量列表中. 1.打开IIS: 2.打开要添加变量的站点: 3.打开URL Rewrite: 4.在右列上,选择“查看服务器变量(Vie ...
- python处理数据(一)
CSV数据处理 csv文件格式 逗号分隔符(csv),有时也称为字符分隔值,因为分隔字符也可以不是逗号,其文件以纯文本的形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符序列,不含必须像二进 ...
- objc_msgSend函数的实现
毕竟汇编语言代码比较晦涩难懂,因此这里将函数的实现反汇编成C语言的伪代码: //下面的结构体中只列出objc_msgSend函数内部访问用到的那些数据结构和成员. /* 其实SEL类型就是一个字符串指 ...
- django操作多数据库
django操作多数据库 1. 添加数据库路由分配文件 在项目文件夹里创建‘database_router’文件.将下面的代码复制到该文件里. from django.conf import s ...
- python伪装网页访问
# -*- coding:utf8 -*-#import urllib.request#url =' http://www.douban.com/'#webPage=urllib.request.ur ...
- Yii设置Cache缓存的方法
先在配置文件components数组中加上: 'cache'=>array( 'class'=>'CFileCache'), 设置Cache: Yii::app()->cache-& ...
- lvm xfs 扩容
lvresize -L 300M /dev/vg1/lv1 #重新设定大小 e2fsck -f /dev/vg1/lv1 #检查磁盘错误 (针对ext4执行) resize2fs /dev/vg1/l ...
- linux下tomcat日志文件现问号乱码
在使用liunux系统下,使用tomcat记录的日志出现乱码的情况,不能显示中文,中文出现?问号乱码情况,不能正常查看 linux下乱码可能有三个情况 1.linux不含中文支持语言包 打开远程连接客 ...
- HDU 1950(LIS)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1950 Bridging signals Time Limit: 5000/1000 MS (Java ...