Unity3D入门之Unity3D介绍以及编辑器的使用(1)
1.Unity3D介绍
Unity3D是跨平台(IOS、Android、Windows Phone、Windows、Flash、XBOX360、PS3、Wii等)游戏引擎,可以开发2D、2.5D、3D游戏。appstore手机上有1500+款用Unity3D开发的游戏。
什么是游戏引擎?开发简单、高度封装(OpenGL、DirectX)。其他游戏引擎: Cocos2d、UDK、 Unreal Engine 3、 Quest3D 等。
2.为什么使用Unity3D?跨平台;费用便宜(非开源,有免费版)
3.游戏开发常识
游戏术语:
手游(新增长点);网游(捉迷藏OL,U3D);端游(需要下载客户端);页游(WebGame)
FPS(First Person Shoot/Frame Per second);MMO( Massively Multiplayer Online,大型多人在线);RPG(虚拟人生,浪漫庄园)
2.5D(用2D模拟出来的3D。中国2D网游占据8成市场);锁定视角3D(视角固定,不足够炫,但是不头晕,开发难度低,建模建3面即可)
第三人称;第一人称;
单机游戏;网络游戏:大公司使用自主引擎,中小公司使用Java开发的 smartfoxserver 、C#开发的Photon(底层C++) 等;
运营商、游戏代理、渠道商:开发商自己要处理推广、支付、打击盗版等,一般和渠道商合作分成。比如《捕鱼达人》android版90%收入来自渠道。Android手机游戏开发的困境,渠道太多,N多打包;
游戏公司分工:策划;美工;程序员;测试;客服等。黑话:主程、主美
4.Unity3D基本使用
Hierarchy中Create一个Cube立方体,在Inspector中修改它的Position XYZ为0;
添加一个光源照亮场景Directional light,Position XYZ为(0,2,2);
修改摄像机MainCamera(摄像机看到的就是屏幕看到的)的Position为(0,2,-6),看起来清楚一些
Project中Create一个C# Script,编写一个拖动Cube旋转Cube的功能。
把脚本拖到Cube上(拖到Hierarchy中比较准确)。
代码如下:
using UnityEngine;
using System.Collections; public class CubeControl : MonoBehaviour
{
//unity3D中常用的几种系统自调用的重要方法
//首先,我们有必要说明一下他们的执行顺序:
//awake--start--update--fixedupdate--lateupdate--OnGUI--reset--onDisable--onDestory
// Start仅在Update函数第一次被调用前调用
void Start()
{ }
//每一帧都调用Update()方法
void Update()
{
//可以在控制台输出上一次调用Update()方法时所用的时间
//Time.deltaTime 它表示距上一次调用Update或FixedUpdate所用的时间,
//因此通过它可以让游戏对象按照一个常速进行旋转,而不是依赖于它的帧频:
Debug.Log(Time.deltaTime);
}
//OnGUI是在渲染和处理GUI事件时调用。比如:你画一个button或label时常常用到它。这意味着OnGUI也是每帧执行一次。
void OnGUI()
{ //bool isClick = GUI.Button(new Rect(30, 30, 100, 20), "按钮");//返回是否点击了按钮,点击返回true
//if (isClick)
//{
// //点击一次,模型绕着x轴旋转Time.deltaTime * 40度
// transform.Rotate(new Vector3(Time.deltaTime * 40, 0, 0));
//}
//GUI.RepeatButton 是长按按钮
bool isClick = GUI.RepeatButton(new Rect(, , , ), "按钮");//返回是否点击了按钮,点击返回true
if (isClick)
{
//点击一次,模型绕着x轴旋转Time.deltaTime * 40度
transform.Rotate(new Vector3(Time.deltaTime * , , ));
}
}
}
5.抗锯齿:主菜单→Edit→Project Settings→Quality,AntiAliasing选为4x(越大越平滑但是越占资源)
6.体验跨平台:File→Build Settings,构建为exe、flash,如果有android、ios等开发环境还可以构建为手机软件。
7.脚本基础
C#脚本不支持命名空间,脚本在Project中的显示名称不要加cs,类名要和cs名称一致,所有类继承自MonoBehaviour。跟具体游戏对象无关的脚本可以放到摄像机MainCamera中。不要不正确的给一个游戏对象设置多个脚本对象
初始化不要放到构造函数中,而是放到Start()方法中。
放到游戏对象中的脚本(实例化)可以在Inspector中修改属性,get/set写法属性不被识别,直接public字段就能当属性用,private或者不写修饰符就是私有字段。
8.程序的调试
程序的运行时调试消息输出:Debug.Log(),显示到Console视图(window→console打开)
项目的断点调试:启动MonoDevelop,主菜单Tools→Options→Unity→Debugger的Editor选择Unity开发环境Unity.exe的程序的路径;然后MonoDevelop打开项目(注意Unity不要同时打开这个项目),然后主菜单Run→Run With→Unity Debugger就可以启动调试了。建议使用Debug.Log()调试,优秀程序员的素质。
Unity3D入门之Unity3D介绍以及编辑器的使用(1)的更多相关文章
- 【Unity 3D 游戏开发】Unity3D 入门 - 工作区域介绍 与 入门演示样例
一. 工作区域具体解释 1. Scence视图 (场景设计面板) scence视图简单介绍 : 展示创建的游戏对象, 能够对全部的游戏对象进行 移动, 操作 和 放置; -- 演示样例 : 创建一个球 ...
- 【Unity 3D 游戏开发】Unity3D 入门 - 工作区域介绍 与 入门示例
一. 工作区域详解 1. Scence视图 (场景设计面板) scence视图简介 : 展示创建的游戏对象, 可以对所有的游戏对象进行 移动, 操作 和 放置; -- 示例 : 创建一个球体, 控制摄 ...
- Unity3D 入门 - 工作区域介绍 与 入门示例
一. 工作区域详解 1. Scence视图 (场景设计面板) scence视图简介 : 展示创建的游戏对象, 可以对所有的游戏对象进行 移动, 操作 和 放置; -- 示例 : 创建一个球体, 控制摄 ...
- [Unity3D入门]入门级游戏项目"坦克狙击手"更新
[Unity3D入门]入门级游戏项目"坦克狙击手"更新 在上一篇中我分享了一个尚未完全写好的入门级unity3d项目"坦克狙击手". 本文介绍最新版的" ...
- Unity3D入门之JavaScript动态创建对象
接着上一篇Unity3D入门文章,这里继续使用JavaScript脚本语言. 调试:Unity集成了MonoDevelop编辑器,在代码某行的左侧点击,即可下一个断点.然后先关闭Unity编辑器,在M ...
- Unity3D 入门 游戏开发 Unity3D portal game development
Unity3D 入门 游戏开发 Unity3D portal game development 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com ...
- Unity3d 发动机原理详细介绍
Unity3d 发动机原理详细介绍 www.MyException.Cn 发布于:2013-10-08 16:32:36 浏览:46次 0 Unity3d 引擎原理详细介绍 体系结构 ...
- [Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手"
[Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手" 我在学Unity3D,TankSniper(坦克狙击手)这个项目是用来练手的.游戏玩法来自这里(http://ww ...
- Unity3D入门其实很简单
在上次发布拙作后,有不少童鞋询问本人如何学习Unity3D.本人自知作为一名刚入门的菜鸟,实在没有资格谈论这么高大上的话题,生怕误导了各位.不过思来想去,决定还是写一些自己的经验,如果能给想要入门U3 ...
随机推荐
- host 备份
# Copyright (c) 1993-1999 Microsoft Corp.## This is a sample HOSTS file used by Microsoft TCP/IP for ...
- eclipse配置javaee环境
笔者开发javaee项目时惯用myeclipse,但由于个人笔记本性能较低,myeclipse对内存的消耗极大,所以考虑换成eclipse开发.本文介绍eclipse配置javaee开发环境的一些体会 ...
- mysql中left join ,right join 以及inner join 比较
下面是例子分析表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 ...
- PHP高并发高负载系统架构
PHP高并发高负载系统架构 1.为什么要进行高并发和高负载的研究 1.1.产品发展的需要 1.2.公司发展的需要 1.3.当前形式决定的 2.高并发和高负载的约束条件 2.1.硬件 2.2.部署 2. ...
- ansible-playbook
一.ansible-playbook介绍: playbook是由一个或多个"play"组成的列表.play的主要功能在于将事先归为一组的主机装扮成事先通过ansible中的task ...
- 关于C++的递归调用(n的阶乘为例)
C++,是入门编程界的一门初期的语言.今天我们浅谈一下有关C++的递归调用. 在没有继承,多态,封装之前,C++几乎看成是C语言,除了一些简单的输出和头文件. 具体代码实现如下: #include&l ...
- HBase安装及简单使用
通过之前的hadoop0.20.2的安装并调试成功,接下来我们继续安装hbase0.90.5.在安装hbase0.90.5之前,因为hbase0.90.5只支持jdk1.6,所以,我把之前的jdk1. ...
- 搭建maven环境
有两种方式可以配置maven的环境配置,本人推荐使用第二种,即使用本地的maven安装文件,个人感觉这样可以方便管理下载jar包的存放位置,错误信息的输出等,可以在dos窗口中可以清晰看到,虽然比较麻 ...
- Java 获取 Unix时间戳
unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒. 在大多数的UNIX系统中UNIX时间戳存储为32位,这样会引发2038年问题. 但是,因为需求是需要int类 ...
- BZOJ4350: 括号序列再战猪猪侠
Description 括号序列与猪猪侠又大战了起来. 众所周知,括号序列是一个只有(和)组成的序列,我们称一个括号 序列S合法,当且仅当: 1.( )是一个合法的括号序列. 2.若A是合法的括号序列 ...