25857人加入学习
(149人评价)
Unity2D 初级案例 - 坦克大战(Unity2017.1)

制作于2017年12月23日

价格 免费

第一个场景的制作

ctrls保存当前场景,ctrlN新建一个场景 Main

摄像机调黑

新建一个image battlecity

再新建一个 image 坦克指针

按shift等比缩放

再建两个空物体

把Pos1放在指针下边并reset一下 让其位置重合 大小手动调整重合

把Pos2删了直接从Pos1复制

按下WS时应该移动 并

再在option上加上同名脚本

   int变量=0

private int choice = 1;

位置引用

public Transform posOne;

public Transform posTwo;

update里

if监听键盘

choice = 1;

位置变换语法

transform.position = posOne.position;

游戏场景using

场景变换语法

再把引用拖一下

再拖一下游戏场景

file-Build Settings

直接拖到框框里 一个0一个1

[展开全文]
  • create folder Scripts
  • 选中左侧player,添加一个脚本,
  • add component,
  • 输入player,new cript,等下方圆圈转完
  • 双击player,打开vs

 

 

 

[展开全文]

音效的添加

在MapCreation里把那些Awake里的封装成一个方法 InitMap

注意方法的执行语句不用再加private什么的了

在Recover里加上返回主界面的功能 在PlayerManager里

using UnityEngine.SceneManagement;

先新建一个方法

private void ReturnToTheMainMenu()

场景 0 语句

在recover来个Invoke延时执行

Die audio

先拿引用

public AudioClip dieAudio;

在heart die方法

AudioSource.PlayClipAtPoint(dieAudio,transform.position);

直接在当前位置播放

Explosion 音效

直接在Explosion上面挂Audio Source 组件

play on Awake 打勾 游戏物体一出来就播放

把音效拖上去

打到障碍的声音

给障碍加个脚本

拿引用public AudioClip hitAudio;

碰撞检测语法 封装一个方法 

把所有碰撞检测的放在子弹里

在bullet里调用一下就可以了 发送碰撞消息

start 音效 用组件放在Background上面

fire 音效 放在player子弹身上

引擎音效

给玩家添加AudioSource组件 用语法控制其附带音效变化

在player脚本中拿下组件

piblic AudioSource moveAudio;

数组拿音效素材

public AudioClip[] tankAudio;

直接把组件拖到public

再拖素材

检测 如果v跟h的值是0 则播放idle,不是0则是driving 做一个判断  怎样简洁

音效 = 数组中的一个 再播放

else 没有大于

在上面的isDefeat方法里加入returnToMenu

heart失败的情况

 

 

 

[展开全文]

Vector3.right(x)/up(y)/forward(z)

[展开全文]

2D游戏素材Texture Type要选择为Sprite(2D and UI)

Sprite Mode:

单张图片选择single,图集选择multiple

在Sprite Editor中进行图片的切割

[展开全文]

有关刚体的代码尽量都放到FixedUpdate()中,可以解决大部分问题

[展开全文]

transform.Translate(transform.up*movespeed*Time.deltaTime,Space.World);

[展开全文]

Animation:存放动画文件

AnimatorController:存放动画控制器

创建2D动画:

连续的图片拖到hierarchy,命名动画文件,保存

 

[展开全文]

素材切割,全屏切割与比例切割

右击Project

Cter+C保存场景

 

[展开全文]

把场景UI都放在一个空物体下即可通过该物体控制整体移动

作业一    移动界面动画

作业二    双人游戏

Editor project settings Input 右键复制

作业三    红色坦克奖励  时钟 停止运动

在敌人脚本中设置一个bool值 return

堡垒  wall 变障碍  把wall销毁重新创建一个障碍

设置一个计时器

炸弹 消灭场内所有敌人 定义一个列表 把敌人的gameobject 存进去 再遍历删除

帽子 重新激活无敌特效与bool值

作业四 给tank履带做动画 加一个动画控制器Animator

[展开全文]

unity 中的 内置 的 Cube 的大小是 长宽高都是1 米

[展开全文]

Sprite

sorting layer层级

orderinlayer小层级

越大越靠后

[展开全文]

画布的自适应 canvas sacle with screen size

[展开全文]
  1. 将Defended特效拖到player下是拖游戏物体,不是拖预制体
  2. Defended reset完后无需点apply,在Player那点apply
[展开全文]

动画与动画控制器

自动分割图集(Sprite Editor)

[展开全文]

调用

collision.Sendmessage("Die")

区别玩家和敌人的子弹

 

public bool isplayerBullet;

 

if (!isplayerBullet)

{

collision.SendMessge("Die");}

Destroy (collision.gameObject;

Destroy(gameObject);

障碍;

Destroy(gameObject);

 

heart d 改变:

private SpriteRenderer sr;

void Start(){

sr = GetComponet<SpriteRenderer>();}

public void Die(){
}

[展开全文]

坦克移动时改变显示

获得精灵渲染

精灵数组

把图片拖入数组 

[展开全文]

给hv设置一个优先级

封装方法

sortinglayer 大层级层级越大越后渲染。覆盖掉别的物体

orderlayer同一层级的渲染顺序

 

[展开全文]

 第一次学习时间2018-01-22

 
 
G
M
T
 
 
Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu
 
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu
 
 
 
 
 
 
 
 
 
Text-to-speech function is limited to 200 characters
 
 
Options : History : Feedback : Donate Close
[展开全文]

input.GetKeyDown(KeyCode.Space){ }

instantiate(object,position,rotation)

[展开全文]

授课教师

SiKi学院老师

课程特色

图文(1)
视频(32)
下载资料(1)