【SIKI】_05_Unity5.3开发2D游戏笔记

来源:互联网 发布:painterx3 mac注册机 编辑:程序博客网 时间:2024/04/20 15:50
一.界面基本操作

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

原创粉丝点击