Unity3D游戏开发-宣雨松读书摘要(2015-4-17 18:36)

本书介绍了Unity3D游戏开发,涵盖JavaScript和C#语言,通过丰富的实例讲解。内容包括Unity引擎、游戏对象、组件、输入处理、物理引擎、GUI系统、游戏元素如光源、摄像机、动画、输入控制,以及多媒体和网络功能。书中还涉及脚本生命周期、协同程序、碰撞检测和动画控制等关键概念。
摘要由CSDN通过智能技术生成
本书基于Unity3.5编写,通过丰富的游戏实例,以JavaScript与C#两种语言介绍Unity开发。
Unity3D游戏开发-宣雨松

它支持JavaScript、C#、Boo三种脚本语言
JavaScript语言更适合初学者
双击游戏场景文件即可打开游戏工程
Scene.unity
JavaScript语言编写的脚本中,使用UTF-8编码格式
C#语言编写的脚本中,使用UTF-16编码格式
本书是在Mac OS下讲解Unity开发
2012年2月29日
宣雨松

Unity游戏开发实战
[美]米歇尔·梅纳德 著
史晓明 李强 译
2012年4月第1版第1次印刷
2.4.1Unity引擎
Unity 2.6.1f3 Setup
9.2.2 Unity的MonoBehaviour类 
using UnityEngine;
using System.Collections;


public class NewBehaviourScript : MonoBehaviour {
Update更新
LateUpdate延迟更新
FixedUpdate延迟更新
Awake唤醒
Start开始
}


GetComponent函数调用也是从MonoBehaviour类继承下来的。
TextRebornTimerNum.GetComponent<Text>().text = "";


如果游戏有成百上千个脚本,该怎么办呢?
Unity使用一种特殊的命令行形式来解决这个问题。
@script AddComponentMenu("SomeFolder/SomeScriptName")
通过把这行代码添加到脚本中(在任何函数之外),可以让Unity把它放入Component菜单中你所选择的子文件夹中。

9.3.1 Input类回顾
GetAxis():返回指定轴的值。这些映射到-1~1,空挡位置为0。
GetButton():如果指定的命名按钮按下,就返回True。需要使用这个函数来引用操作杆和游戏手柄按钮。也可以用于键盘上的键。
GetKey():如果指定的键按下就返回True。这不会返回操作杆按钮指令。
GetMouseButton():它在指定的鼠标按钮按下时返回True。
ResetInputAxis():使用这个函数来重置所有的输入,并且把它们恢复到空挡或是0,覆盖任何玩家的输入。
anyKey:如果玩家按下了任意键、按钮或是鼠标按钮,这个值会设置为True。
mousePosition:使用向量来保存鼠标在屏幕上的当前位置。屏幕的左下角映射为坐标(0,1)。
public Vector3 lastPos;
public Vector3 curPos;
if(Input.GetMouseButtonUp(0)){
lastPos = curPos;
curPos = Input.mousePosition;
float distance = Vector3.Distance(lastPos,curPos);
Debug.Log("distance : " + distance);
}
if (Input.GetMouseButton(0)) {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//Ray ray = camera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray, out hit))
{
Vector3 pos1 = hit.point;//得到碰撞点的坐标
   string str=string.Format("x={0},y={1},z={2}",pos1.x,pos1.y,pos1.z);
   strTest=str;
}
}

Unity3D游戏开发技术详解与典型案例
吴亚峰 于复兴 编著
百纳科技 审校
2012年11月第1版
2012年2月,Unity3.5发布。
本书采用的版本为UnitySetup-3.5.0。
3.5.0f5


3.3.8协同程序和中断
任何时间处理程序都是协同程序,但是在Update和FixUpdate中不能使用协同程序。
IEnumerator timeoutScore(int Heroindex)
{
yield return new WaitForSeconds(4.0f);
ShowScore(Heroindex,false);
}

public void OnShowScore(int Heroindex)
{
bool show=m_ImageScore[Heroindex].activeSelf;
if(!show){
ShowScore(Heroindex,true);
StartCoroutine(timeoutScore(Heroindex));
}
}

// 加积分动画
public void OnShowAddScore(int Heroindex,int AddedScore)
{
StartCoroutine(timeoutAddScore(Heroindex,AddedScore));
}


IEnumerator timeoutAddScore(int Heroindex,int AddedScore)
{
yield return new WaitForSeconds(0.1f);
m_TextAddScore[Heroindex].rectTransform.localScale = Vector3.zero;
LeanTween.scale (m_TextAddScore[Heroindex].rectTransform, new Vector3 (0.1f, 0.1f, 0.1f), 0.5f).setEase (LeanTweenType.easeOutBack);
m_TextAddScore[Heroindex].text = "+" + AddedScore.ToString();
StartCoroutine (timeoutAddScoreEnd(Heroindex,AddedScore));
}


IEnumerator timeoutAddScoreEnd(int Heroindex,int AddedScore)
{
yield return new WaitForSeconds(2f);
m_TextAddScore[Heroindex].text = "";
}

chap1基础知识
起初Unity的版本为1.0.0,它只可部署在Mac OS下并且只能制作iPhone中的游戏。
随着它不断发展与壮大,目前Unity的版本已经升级至3.5,可同时部署在Mac OS与Windows两种操作系统之上,横跨的主流游戏平台高达9种。
Unity支持向下兼容
如何在Mac OS中搭建Unity开发环境
Mac OS下的Unity界面
Unity的导航菜单栏位于屏幕顶部
 
Windows下的Unity界面
Windows下导航菜单栏可随窗口移动
打包与发布
File|Build Settings
只需选择对应的打包平台,Unity便可轻松实现跨平台游戏打包与发布。
 
Flash Player格式需要Java虚拟机的支持
实际开发中可通过消息传递或者插件的形式将游戏平台的相关代码加入到Unity工程中。
chap2编辑器的结构
Unity中包含的5大视图:场景视图、游戏视图、层次视图、项目视图、监测视图
项目视图:游戏的资源文件,比如游戏的贴图、动画模型、声音文件
游戏脚本、预设、材质、动画、自定义字体、纹理、物理材质、GUI皮肤
这些资源需要赋予层次视图中的某些游戏对象
在项目视图的左上角点击Create按钮,将弹出一个下拉列表,可以创建游戏的相关资源
保存在Assert文件夹中
将材质赋予游戏对象时,游戏对象将显示这个材质。

层次视图:这里可创建一些模型,只具备单一的3D网格
主要存放游戏场景中具体的游戏对象,比如摄像机、平面贴图、3D贴图、光源、箱子、球体、胶囊体、模型、平面和地形
对于3D游戏来说,摄像机可以让我们以不同的角度观察游戏世界。
层次视图中的游戏对象与工程视图中的游戏资源密切相关。
游戏对象创建完毕后,即可在场景视图中看到我们创建的游戏对象。
监测视图:主要用来呈现某个游戏对象或者游戏组件的一些说明与参数信息
展示选择对象的所有描述信息
修改完监测视图的参数后,在游戏视图中可直接看到修改后的效果。
平台设定
玩家设置
Edit|Project Settings|Player

场景视图:层次视图中创建的模型都会出现在场景视图当中,在场景视图中可以修改模型的位置、旋转的角度和缩放的大小等
主要存放游戏中的模型资源。
3个箭头代表3个坐标方向
红色为x轴方向,绿色为y轴方向,蓝色为z轴方向
游戏发布后在屏幕中显示的内容只可能是摄像机照射的一部分,所以动态移动摄像机的位置即可刷新屏幕显示区域。
创建游戏对象后,默认的材质是灰色的。
在层次视图中选择摄像机后,在场景视图右下角会出现游戏预览视图,从中可以清楚地看到摄像机目前所照射的部分。
 
游戏视图:是游戏最终发布后展示在屏幕中的效果,屏幕展示的内容为层次视图当中摄像机照射的部分。
场景文件以.unity为后缀
运行游戏后,即可在游戏视图中看到之前编辑的游戏效果。通常游戏开发中会存在多个摄像机,它们之间根据游戏剧情的需要进行相互切换。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值