《unity3d手机游戏开发》第1章快速入门 11.1 unity简介 11.2运行unity 21.2.1 unity的版本 21.2.2安装unity 21.2.3在线激活unity 21.2.4运行示例工程 41.2.5安装visual studio 61.3创建一个“hello world”程序 61.4调试程序 91.4.1显示log 101.4.2设置断点 10小结 11第2章太空射击游戏 122.1浅谈游戏开发 122.1.1开始一个游戏项目 122.1.2阶段性成果 122.1.3策划 132.1.4编写脚本 13.2.1.5美术 132.1.6 qa测试 142.1.7发布游戏 142.2游戏策划 142.2.1游戏介绍 142.2.2游戏ui 142.2.3主角 142.2.4游戏操作 152.2.5敌人 152.3导入美术资源 152.4创建场景 162.4.1创建火星背景 162.4.2设置摄像机和灯光 202.5创建主角 212.5.1创建脚本 212.5.2控制飞船移动 232.5.3创建子弹 252.5.4创建子弹prefab 262.5.5发射子弹 272.6创建敌人 282.7物理碰撞 302.7.1添加碰撞体 302.7.2触发碰撞 322.8高级敌人 342.8.1创建敌人 342.8.2发射子弹 362.9声音与特效 382.10敌人生成器 412.11游戏管理器 432.12标题界面 482.13发布游戏 49小结 52第3章第一人称射击游戏 533.1策划 533.1.1游戏介绍 533.1.2 ui界面 533.1.3主角 533.1.4敌人 533.2游戏场景 533.3主角 543.3.1角色控制器 553.3.2摄像机 573.3.3武器 583.4敌人 593.4.1寻路 593.4.2设置动画 633.4.3行为 643.5 ui界面 683.6交互 723.6.1主角的射击 723.6.2敌人的进攻与死亡 753.7出生点 783.8小地图 80小结 84第4章塔防游戏 854.1策划 854.1.1场景 854.1.2摄像机 854.1.3胜负判定 854.1.4敌人 854.1.5防守单位 864.1.6 ui界面 864.2游戏场景 864.3摄像机 924.4游戏管理器 954.5路点 974.6敌人 1024.7敌人生成器 1054.7.1在excel中设置敌人 1054.7.2创建敌人生成器 1094.8防守单位 1154.9生命条 1194.10自定义按钮 124小结 131第5章资源创建 1325.1光照 1325.1.1光源类型 1325.1.2环境光与雾 1345.1.3 lightmapping 1355.1.4 light probe 1375.2 terrain 1395.3 skybox 1425.4粒子 1445.5物理 1485.6自定义shader 1505.6.1自定义字体 1515.6.2创建shader 1525.7贴图 1555.8 3d模型导出流程 1555.8.1 3ds max静态模型导出 1555.8.2 3ds max动画模型导出 1575.8.3 3ds max动画导出 1585.8.4 maya模型导出 1585.9动画 1595.10优化 163小结 163第6章与web服务器的交互 1646.1建立服务器 1646.1.1安装apache 1646.1.2安装mysql 1666.1.3安装php 1696.1.4显示php信息 1716.1.5调试php代码 1726.2 www基本应用 1746.2.1 http协议 1746.2.2 get请求 1756.2.3 post请求 1766.2.4上传下载图片 1786.2.5下载声音文件 1806.3自定义数据流 1806.3.1 c#版本的数据流 1816.3.2 php版本的数据流 1886.3.3测试 1926.4分数排行榜 1956.4.1创建数据库 1956.4.2创建php脚本 1966.4.3上传下载分数 199小结 202第7章基于tcp/ip协议的聊天实例 2037.1 tcp/ip开发简介 2037.2网络引擎 2047.2.1数据流 2047.2.2数据包 2147.2.3逻辑处理 2157.2.4定义消息标识符 2177.2.5客户端 2177.2.6服务器端 2247.3聊天客户端 2297.4聊天服务器端 2347.5收发结构体 2387.6 protobuf简介 242小结 244第8章用unity创建网页游戏 2458.1网页游戏简介 2458.2 unity web游戏 2458.2.1 streaming关卡 2458.2.2上传游戏到kongregate 2498.2.3与网页通信 2518.2.4在网页上记录积分 2538.2.5自定义网页模板 2548.2.6自定义启动画面 2588.3 flash游戏 2598.3.1软件安装 2608.3.2导出flash游戏 2608.3.3调试flash游戏 2618.3.4从flash工程读取unity导出的flash游戏 2618.3.5在unity内调用as3代码 2678.3.6 flash版本的太空射击游戏 2718.4 assetbundle 2748.4.1打包资源 2758.4.2下载资源 2768.4.3安全策略 279小结 280第9章将unity游戏移植到ios平台 2819.1 ios简介 2819.2软件安装 2819.3申请开发权限 2819.4设置ios开发环境 2829.5测试ios游戏 2869.6发布ios游戏 2889.6.1申请发布证书 2889.6.2创建新应用 2889.6.3提交审核 2909.7集成game center 2919.7.1 xcode到unity 2919.7.2设置高分榜和成就 2979.7.3实现game center功能 2999.8集成内消费系统 3099.8.1设置内消费 3099.8.2实现内消费 3109.9本地存储位置 317小结 317第10章将unity游戏移植到android平台 31810.1 android简介 31810.2软件安装 31810.3运行android游戏 32010.3.1设置android手机 32010.3.2安装驱动程序 32010.3.3设置android游戏工程 32310.3.4测试android游戏 32710.3.5发布android游戏 32710.4触屏操作 32910.5从eclipse到unity 33310.5.1创建.jar文件 33410.5.2导入.jar到unity 33710.6从unity到eclipse 33910.6.1导出eclipse工程 33910.6.2设置导出的eclipse工程 34010.6.3创建用于发布的eclipse工程 34110.6.4发布程序 34610.7自定义activity 347小结 350附录a c#语言 351a.1 c#基础 351a.2面向对象编程 361a.3字符串 368a.4数组 370a.5 i/o操作 372a.6委托 376小结 381附录b特殊文件夹 382
效果图,素材是网上随便拉的
这是运行后的Hierarchy的界面,其中最下面的Item是放在摄像机不能拍到的位置,当做预设体,每个Item都有Toggle组件,在Grid上有Toggle Group组件,并且将Itme上的Toggle组件中Group设置为Grid,这实现了点了一个之后,其他不会高亮。Grid上有组件 Grid Layout Group,该组件实现了当创建Item,并且将父物体设置为Grid后能够自动排版
这里我们需要写三个类,一个是自己捏造的数据类,放在Item上获取各种UI的类,还有能够创建Item并且能够对Item进行管理的类
public class ItemData//这个类存放的是数据
{
public int _starNum;//星星的数量(本来是想找星星的,现在就随便将就一下)
public string _icon;//这是图片名字
public string _itemName;//关卡的名字
public string _itemNum;//第几关
}
item上的类,用来获取item上的UI控件
public class Item: MonoBehaviour
{
public Image _star1;
public Image _star2;
public Image _star3;
public Image _icon;
public Text _levelNum;
public Text _levelName;
void initializeItem()
{
_star1= transform.Find("StarGroup/star1").GetComponent
_star2= transform.Find("StarGroup/star2").GetComponent
_star3= transform.Find("StarGroup/star3").GetComponent
_icon= transform.Find("Icon").GetComponent
_levelName= transform.Find("Levelname/name").GetComponent
_levelNum= transform.Find("Levelname/Lv").GetComponent
}
void Awake()
{
initializeItem();
}
}
这是个管理Item创建的类
public class MainMgr: MonoBehaviour
{
GameObject item;
Transform Parent; //这里需要得到Gird的Transform
List
void Awake()
{
CreateData();
item= transform.Find("Item").gameObject; //获得一开始放在摄像机外的游戏对象,当做预设体
Parent= transform.Find("Grid"); //保存Gird的Transform
}
void CreateData() //创建自己捏造的数据
{
dataGroup.Clear();//确保这个List没有其他数据
ItemData itemdata= new ItemData();
itemdata._icon="1(5)";
itemdata._itemName="小树林";
itemdata._itemNum="第一关";
itemdata._starNum= 3;
dataGroup.Add(itemdata);
ItemData itemdata1= new ItemData();
itemdata1._icon="1(7)";
itemdata1._itemName="沼泽";
itemdata1._itemNum="第二关";
itemdata1._starNum= 1;
dataGroup.Add(itemdata1);
ItemData itemdata2= new ItemData();
itemdata2._icon="1(15)";
itemdata2._itemName="山海关";
itemdata2._itemNum="第三关";
itemdata2._starNum= 1;
dataGroup.Add(itemdata2);
ItemData itemdata3= new ItemData();
itemdata3._icon="1(12)";
itemdata3._itemName="墓地";
itemdata3._itemNum="第四关";
itemdata3._starNum= 2;
dataGroup.Add(itemdata3);
ItemData itemdata4= new ItemData();
itemdata4._icon="1(32)";
itemdata4._itemName="神殿";
itemdata4._itemNum="第五关";
itemdata4._starNum= 3;
dataGroup.Add(itemdata4);
ItemData itemdata5= new ItemData();
itemdata5._icon="1(25)";
itemdata5._itemName="天庭";
itemdata5._itemNum="第六关";
itemdata5._starNum= 2;
dataGroup.Add(itemdata5);
ItemData itemdata6= new ItemData();
itemdata6._icon="1(30)";
itemdata6._itemName="心魔";
itemdata6._itemNum="第七关";
itemdata6._starNum= 3;
dataGroup.Add(itemdata6);
}
GameObject tempItem;//创建临时的游戏对象
void CreateTempItem() //创建Item
{
if(dataGroup!= null) //当这个List不为空时
{
for(int i= 0; i< dataGroup.Count; i++) //循环创建Item
{
tempItem= Instantiate(item) as GameObject; //创建Item并且获取到这个游戏对象
tempItem.transform.localPosition= Vector3.zero; //将其位置,缩放大小,旋转角度初始化
tempItem.transform.localRotation= new Quaternion();
tempItem.transform.localScale= Vector3.one;
tempItem.transform.SetParent(Parent); //设置其父物体为Grid
Item itemSprite= tempItem.AddComponent(); //为每一个创建的Item添加脚本
itemSprite._levelName.text= dataGroup[i]._itemName;//获取每一个关卡的名字获取,一下类似
itemSprite._levelNum.text= dataGroup[i]._itemNum;
string path= string.Format("Icon/{0}", dataGroup[i]._icon);//字符串拼接
itemSprite._icon.sprite= Resources.Load(path, typeof(Sprite)) as Sprite;
ShowStar(dataGroup[i]._starNum, itemSprite);//调用这个方法获得星星的显示
}
}
}
void ShowStar(int num,Item tempitem)//这个方法是用来显示星星
{
if(num== 1)
{
tempitem._star1.gameObject.SetActive(true);
tempitem._star2.gameObject.SetActive(false);
tempitem._star3.gameObject.SetActive(false);
}
if(num== 2)
{
tempitem._star1.gameObject.SetActive(true);
tempitem._star2.gameObject.SetActive(true);
tempitem._star3.gameObject.SetActive(false);
}
if(num== 3)
{
tempitem._star1.gameObject.SetActive(true);
tempitem._star2.gameObject.SetActive(true);
tempitem._star3.gameObject.SetActive(true);
}
}
void Start(){
CreateTempItem();
}
}
以上就是简单的游戏关卡的选择界面的实现,如果有错误,或者更好的方法,望指正,万分感谢!
《unity3d手机游戏开发》第1章快速入门 11.1 unity简介 11.2运行unity 21.2.1 unity的版本 21.2.2安装unity 21.2.3在线激活unity 21.2.4运行示例工程 41.2.5安装visual studio 61.3创建一个“hello world”程序 61.4调试程序 91.4.1显示log 101.4.2设置断点 10小结 11第2章太空射击游戏 122.1浅谈游戏开发 122.1.1开始一个游戏项目 122.1.2阶段性成果 122.1.3策划 132.1.4编写脚本 13.2.1.5美术 132.1.6 qa测试 142.1.7发布游戏 142.2游戏策划 142.2.1游戏介绍 142.2.2游戏ui 142.2.3主角 142.2.4游戏操作 152.2.5敌人 152.3导入美术资源 152.4创建场景 162.4.1创建火星背景 162.4.2设置摄像机和灯光 202.5创建主角 212.5.1创建脚本 212.5.2控制飞船移动 232.5.3创建子弹 252.5.4创建子弹prefab 262.5.5发射子弹 272.6创建敌人 282.7物理碰撞 302.7.1添加碰撞体 302.7.2触发碰撞 322.8高级敌人 342.8.1创建敌人 342.8.2发射子弹 362.9声音与特效 382.10敌人生成器 412.11游戏管理器 432.12标题界面 482.13发布游戏 49小结 52第3章第一人称射击游戏 533.1策划 533.1.1游戏介绍 533.1.2 ui界面 533.1.3主角 533.1.4敌人 533.2游戏场景 533.3主角 543.3.1角色控制器 553.3.2摄像机 573.3.3武器 583.4敌人 593.4.1寻路 593.4.2设置动画 633.4.3行为 643.5 ui界面 683.6交互 723.6.1主角的射击 723.6.2敌人的进攻与死亡 753.7出生点 783.8小地图 80小结 84第4章塔防游戏 854.1策划 854.1.1场景 854.1.2摄像机 854.1.3胜负判定 854.1.4敌人 854.1.5防守单位 864.1.6 ui界面 864.2游戏场景 864.3摄像机 924.4游戏管理器 954.5路点 974.6敌人 1024.7敌人生成器 1054.7.1在excel中设置敌人 1054.7.2创建敌人生成器 1094.8防守单位 1154.9生命条 1194.10自定义按钮 124小结 131第5章资源创建 1325.1光照 1325.1.1光源类型 1325.1.2环境光与雾 1345.1.3 lightmapping 1355.1.4 light probe 1375.2 terrain 1395.3 skybox 1425.4粒子 1445.5物理 1485.6自定义shader 1505.6.1自定义字体 1515.6.2创建shader 1525.7贴图 1555.8 3d模型导出流程 1555.8.1 3ds max静态模型导出 1555.8.2 3ds max动画模型导出 1575.8.3 3ds max动画导出 1585.8.4 maya模型导出 1585.9动画 1595.10优化 163小结 163第6章与web服务器的交互 1646.1建立服务器 1646.1.1安装apache 1646.1.2安装mysql 1666.1.3安装php 1696.1.4显示php信息 1716.1.5调试php代码 1726.2 www基本应用 1746.2.1 http协议 1746.2.2 get请求 1756.2.3 post请求 1766.2.4上传下载图片 1786.2.5下载声音文件 1806.3自定义数据流 1806.3.1 c#版本的数据流 1816.3.2 php版本的数据流 1886.3.3测试 1926.4分数排行榜 1956.4.1创建数据库 1956.4.2创建php脚本 1966.4.3上传下载分数 199小结 202第7章基于tcp/ip协议的聊天实例 2037.1 tcp/ip开发简介 2037.2网络引擎 2047.2.1数据流 2047.2.2数据包 2147.2.3逻辑处理 2157.2.4定义消息标识符 2177.2.5客户端 2177.2.6服务器端 2247.3聊天客户端 2297.4聊天服务器端 2347.5收发结构体 2387.6 protobuf简介 242小结 244第8章用unity创建网页游戏 2458.1网页游戏简介 2458.2 unity web游戏 2458.2.1 streaming关卡 2458.2.2上传游戏到kongregate 2498.2.3与网页通信 2518.2.4在网页上记录积分 2538.2.5自定义网页模板 2548.2.6自定义启动画面 2588.3 flash游戏 2598.3.1软件安装 2608.3.2导出flash游戏 2608.3.3调试flash游戏 2618.3.4从flash工程读取unity导出的flash游戏 2618.3.5在unity内调用as3代码 2678.3.6 flash版本的太空射击游戏 2718.4 assetbundle 2748.4.1打包资源 2758.4.2下载资源 2768.4.3安全策略 279小结 280第9章将unity游戏移植到ios平台 2819.1 ios简介 2819.2软件安装 2819.3申请开发权限 2819.4设置ios开发环境 2829.5测试ios游戏 2869.6发布ios游戏 2889.6.1申请发布证书 2889.6.2创建新应用 2889.6.3提交审核 2909.7集成game center 2919.7.1 xcode到unity 2919.7.2设置高分榜和成就 2979.7.3实现game center功能 2999.8集成内消费系统 3099.8.1设置内消费 3099.8.2实现内消费 3109.9本地存储位置 317小结 317第10章将unity游戏移植到android平台 31810.1 android简介 31810.2软件安装 31810.3运行android游戏 32010.3.1设置android手机 32010.3.2安装驱动程序 32010.3.3设置android游戏工程 32310.3.4测试android游戏 32710.3.5发布android游戏 32710.4触屏操作 32910.5从eclipse到unity 33310.5.1创建.jar文件 33410.5.2导入.jar到unity 33710.6从unity到eclipse 33910.6.1导出eclipse工程 33910.6.2设置导出的eclipse工程 34010.6.3创建用于发布的eclipse工程 34110.6.4发布程序 34610.7自定义activity 347小结 350附录a c#语言 351a.1 c#基础 351a.2面向对象编程 361a.3字符串 368a.4数组 370a.5 i/o操作 372a.6委托 376小结 381附录b特殊文件夹 382
效果图,素材是网上随便拉的
这是运行后的Hierarchy的界面,其中最下面的Item是放在摄像机不能拍到的位置,当做预设体,每个Item都有Toggle组件,在Grid上有Toggle Group组件,并且将Itme上的Toggle组件中Group设置为Grid,这实现了点了一个之后,其他不会高亮。Grid上有组件 Grid Layout Group,该组件实现了当创建Item,并且将父物体设置为Grid后能够自动排版
这里我们需要写三个类,一个是自己捏造的数据类,放在Item上获取各种UI的类,还有能够创建Item并且能够对Item进行管理的类
public class ItemData//这个类存放的是数据
{
public int _starNum;//星星的数量(本来是想找星星的,现在就随便将就一下)
public string _icon;//这是图片名字
public string _itemName;//关卡的名字
public string _itemNum;//第几关
}
item上的类,用来获取item上的UI控件
public class Item: MonoBehaviour
{
public Image _star1;
public Image _star2;
public Image _star3;
public Image _icon;
public Text _levelNum;
public Text _levelName;
void initializeItem()
{
_star1= transform.Find("StarGroup/star1").GetComponent
_star2= transform.Find("StarGroup/star2").GetComponent
_star3= transform.Find("StarGroup/star3").GetComponent
_icon= transform.Find("Icon").GetComponent
_levelName= transform.Find("Levelname/name").GetComponent
_levelNum= transform.Find("Levelname/Lv").GetComponent
}
void Awake()
{
initializeItem();
}
}
这是个管理Item创建的类
public class MainMgr: MonoBehaviour
{
GameObject item;
Transform Parent; //这里需要得到Gird的Transform
List
void Awake()
{
CreateData();
item= transform.Find("Item").gameObject; //获得一开始放在摄像机外的游戏对象,当做预设体
Parent= transform.Find("Grid"); //保存Gird的Transform
}
void CreateData() //创建自己捏造的数据
{
dataGroup.Clear();//确保这个List没有其他数据
ItemData itemdata= new ItemData();
itemdata._icon="1(5)";
itemdata._itemName="小树林";
itemdata._itemNum="第一关";
itemdata._starNum= 3;
dataGroup.Add(itemdata);
ItemData itemdata1= new ItemData();
itemdata1._icon="1(7)";
itemdata1._itemName="沼泽";
itemdata1._itemNum="第二关";
itemdata1._starNum= 1;
dataGroup.Add(itemdata1);
ItemData itemdata2= new ItemData();
itemdata2._icon="1(15)";
itemdata2._itemName="山海关";
itemdata2._itemNum="第三关";
itemdata2._starNum= 1;
dataGroup.Add(itemdata2);
ItemData itemdata3= new ItemData();
itemdata3._icon="1(12)";
itemdata3._itemName="墓地";
itemdata3._itemNum="第四关";
itemdata3._starNum= 2;
dataGroup.Add(itemdata3);
ItemData itemdata4= new ItemData();
itemdata4._icon="1(32)";
itemdata4._itemName="神殿";
itemdata4._itemNum="第五关";
itemdata4._starNum= 3;
dataGroup.Add(itemdata4);
ItemData itemdata5= new ItemData();
itemdata5._icon="1(25)";
itemdata5._itemName="天庭";
itemdata5._itemNum="第六关";
itemdata5._starNum= 2;
dataGroup.Add(itemdata5);
ItemData itemdata6= new ItemData();
itemdata6._icon="1(30)";
itemdata6._itemName="心魔";
itemdata6._itemNum="第七关";
itemdata6._starNum= 3;
dataGroup.Add(itemdata6);
}
GameObject tempItem;//创建临时的游戏对象
void CreateTempItem() //创建Item
{
if(dataGroup!= null) //当这个List不为空时
{
for(int i= 0; i< dataGroup.Count; i++) //循环创建Item
{
tempItem= Instantiate(item) as GameObject; //创建Item并且获取到这个游戏对象
tempItem.transform.localPosition= Vector3.zero; //将其位置,缩放大小,旋转角度初始化
tempItem.transform.localRotation= new Quaternion();
tempItem.transform.localScale= Vector3.one;
tempItem.transform.SetParent(Parent); //设置其父物体为Grid
Item itemSprite= tempItem.AddComponent(); //为每一个创建的Item添加脚本
itemSprite._levelName.text= dataGroup[i]._itemName;//获取每一个关卡的名字获取,一下类似
itemSprite._levelNum.text= dataGroup[i]._itemNum;
string path= string.Format("Icon/{0}", dataGroup[i]._icon);//字符串拼接
itemSprite._icon.sprite= Resources.Load(path, typeof(Sprite)) as Sprite;
ShowStar(dataGroup[i]._starNum, itemSprite);//调用这个方法获得星星的显示
}
}
}
void ShowStar(int num,Item tempitem)//这个方法是用来显示星星
{
if(num== 1)
{
tempitem._star1.gameObject.SetActive(true);
tempitem._star2.gameObject.SetActive(false);
tempitem._star3.gameObject.SetActive(false);
}
if(num== 2)
{
tempitem._star1.gameObject.SetActive(true);
tempitem._star2.gameObject.SetActive(true);
tempitem._star3.gameObject.SetActive(false);
}
if(num== 3)
{
tempitem._star1.gameObject.SetActive(true);
tempitem._star2.gameObject.SetActive(true);
tempitem._star3.gameObject.SetActive(true);
}
}
void Start(){
CreateTempItem();
}
}
以上就是简单的游戏关卡的选择界面的实现,如果有错误,或者更好的方法,望指正,万分感谢!
上一篇:unity ios 游戏排行榜
下一篇:unity游戏排行榜