WWW.unity3d.com.cn

Unity Project  unity的项目文件/专案

Scene  unity的场景文件

Scene 场景视窗

Game 预览视窗

H.. 物件视窗

Project项目/专案管理视窗

I.。。。。属性栏(监测视窗)

材质 MeshRenderer

组件

第三人称控制器自动捕捉的是带有MainCamera标签(tag)的摄像机

 

子文件夹含有Assets文件夹 unity项目文件

 

aaa.Unity Scene File    unity场景文件

 

aaa.UnityPackage    unity资源(可导入到unityProject视窗)

 

Fbx格式为unity支持模型格式

Unity中最节省资源的图片格式为PNG

 

投影遮罩

点光源投影遮罩图片需要是CubeMap

 

点光设置实时影子

 Edit->ProjectSettings->Player

                        File->BuildSettings –>PlayerSetting

                            ->OtherSettings->RenderingPath->DeferredLighting

点光烘焙影子

                            RenderingPath->forward(在场景中看不到实时影子效果

但是,在LightMapping中烘焙之后影子即可显现出来)

 

平行光不能直接添加太阳光效果,必须通过组件的方式

Component->Effets->LensFlare

 

静态物体的影子只能投放在静态物体身上

 

天空盒 Edit –> RenderSettings  找到SkyboxMaterial

正交摄像机(没有透视关系)用于小地图

 

 

11.6  

光源侦测

  1. 1.      任意选择场景中的物体,添加光源侦测组件

Component –> Rendering –> LightProbeGroup

  1. 2.      添加侦测小球AddProbe
  2. 3.      烘焙LightMapping

注意:设置静态Static

烘焙两次第一次烘焙侦测小球BakeProbes

           第二次烘焙场景BakeScene

  1. 4.      选择需要利用侦测的物体,如cube(不需要设置静态),

并找到组件MeshRenderer下的UseLightProbes进行勾选

 

刷地形

准备:先设置大小400*400  厚度30

预置物

 

11.7

Terrain组件设置中 Case shadows选项若取消勾选地形及花草树木

影子不被烘焙(注意:烘焙后才能看到效果)

 

如果需要受风影响必须Terrain组件中找到

创建树按钮->并到EditTree->设置BendFactor参数必须大于0

 

轨迹追踪component->Effects -> TrailRenderer

 

11.10

刚体Rigidbody

IsKinematic 取消刚体物理属性

物理材质PhysicMaterial

音效AudioSource

一般背景音效为2D音效选择背景音效取消3DSound勾选->Apply

 

3D音效可设置范围,将MaxDistance放大或缩小范围,

VolumeRolloff音效曲线设置成LinearRolloff

 

Mute静音

 

PlayOnAwake游戏一运行就开始播放

 

Loop 循环播放音效

 

Volume 音量大小

 

 

脚本

移动的写法

transform.position += Vector3.up * speed; //世界坐标

transform.position += new Vector3 (0, 0, 0.02f); //世界坐标

 

transform.Translate (0, 0, 0.02f);//自身坐标

transform.Translate (0, 0, 0.02f,Space.World);//世界坐标

 

transform.position.x/y/z 用于判断

 

transform.position = new Vector3 (0, 0, 0);定义物体位置

11.11

 

Unassigned….. 此错误提示说明有物体没有给

 

transform.eulerAngles.y >= 30//用于角度判断

 

transform.eulerAngles = new Vector3(10, 10, 10);//定义物体角度

 

鼠标位置移动是以像素为单位

物体位置/大小Position/Scale 以米为单位

 

注意:利用GUITexture制作光标换图效果必须先将GUITexture位置坐标归0

 

Edit -> ProjectSettings -> Input

Input.GetKey。。。    输入键盘上的键(返回值是Bool

Input.GetButton。。。自定义按钮(返回值是Bool

 

应用Input.GetAxisRaw时(返回值是float

Input.GetAxisRaw ("Vertical/ Horizontal ")

Negative Button 负按钮(返回值是-1

Positive Button  正按钮(返回值是1

 

应用Input.GetAxis时(返回值是float

Input.GetAxis("Vertical/ Horizontal ")

Negative Button 负按钮(返回值逐渐过渡到-1

Positive Button  正按钮(返回值逐渐过渡到1

 

 

 

 

 

 

11.12

OnMouseDown()..是指物体受到鼠标点击,此函数运行时只执行一次

 

OnMouseOver()此函数运行时会一直执行

 

只能用在带有碰撞的物体及GUITextureGUIText

 

注意OnMouseDown()..Input.GetMouseButtonDown0)区别

Input.GetMouseButtonDown0)就是指鼠标点击,不论脚本给谁,点击任意地方都可执行效果

OnMouseDown()..带有此函数的脚本给谁,谁才发生作用(并且是受到鼠标点击)

 

public Light myLig;

myLig.enabled = false;//单独组件的勾选

 

gameObject.SetActive(false);//整个物体的勾选

 

练习:通过F1F2F3三种摄像机切换

(1.          正常视角2.俯视图3.围绕场景旋转摄像机)

 

OnDisable  ()是指物体最上方勾选取消时调用

OnEnable()是指物体最上方/单独组建(脚本本身组件)勾选激活时调用

Ctrl + R刷新

11.13

如果物体需要通过脚本更改透明数值的话,必须先将Shader更改成

注意:

不同方法之间调用时(如OnMouseDown()与Update()之间)

有的数值只读时怎么办(如guiTexture.color.a, transform.position.x

一键控制时(bool=!bool ,int=-int

来回循环效果(a+=b,将b取反,判断a的值)

 

换服装,换装备

Material材质球

renderer.material.mainTexture = myTexture[0];

Mesh 网格(外形,形状)

GetComponent<MeshFilter>().mesh = myMesh[0];

 

 

 

 

 

动画如果需要只播放一次,需要找到此动画的模型源文件

 

脚本控制播放一次动画后,切换到其他动画

if(!animation.IsPlaying("Attack02"))//如果没有播放Attack02动画

animation.Play("Idle");

 

l

分别意思为:

清除所有  

重复的提示只显示一行

只显示最新打印效果(一般都需要按下)

只要出现警示,就暂停运行(一般不需要按下)

l

分别意思为:

打印输出

提示

错误提示

 

11.14

Animation

创建animation,然后选择动画到 选到Debug

调节数值

不要忘记再调节成Normal

先时间后位置

 

一个动画多个利用:(如:物1模拟物2

  1. 1.      先明白原理,动画的运动是相对运动
  2. 2.      创建空物体与世界坐标原点重合
  3. 3.      将物1与物2动画中的起始位置重合(Reset
  4. 4.      将物1与空物体打组,空物体为父级,移动空物体到任意位置即可实现。

 

触发事件(触发器)

  1. 1.      两者必须都有碰撞
  2. 2.      其中之一isTrigger勾选,两者都勾选也可
  3. 3.      动的物体加刚体/本身带有组件

11.17

实例化(诞生)

Instantiate(诞生的物体,诞生物体的位置,诞生物体的角度);

Destroy(消失的物体,消失的时间)

11.18

public BoxCollider[] house;

void Start () {

house = GetComponentsInChildren<BoxCollider> ();

//获取自己及子级含有BoxCollider组件的物体

}

 

if (Input.GetMouseButtonDown (0) && Time.time >= nextTime)

       nextTime = Time.time + 2;//2秒执行一次效果

 

gameObject.AddComponent("Rigidbody"); //添加组件

 

transform.LookAt (enemyFirstPos);//Z轴朝向enemyFirstPosVector3

 

Vector3.Distance (transform.position, first.position)//判断距离

 

guiTexture.pixelInset=newRect (Screen.width/2,Screen.height/2,Screen.width*0.1f,Screen.height*0.1f);

//宽度与屏幕匹配

 

11.19

自动寻路

制作步骤:

  1. 1.      确定需要寻路的物体,并添加组件
  2. 2.      将场景中静止的物体设置静态static
  3. 3.      给需要寻路的物体添加脚本

public Transform target;

void Update () {

        GetComponent<NavMeshAgent>().SetDestination (target.position);

  }

  1. 4.      Window中找到
  2. 5.      Bake

 

 

 


属性分别为

寻路物体的外层碰撞半径

寻路物体的速度

寻路物体的加速度

寻路物体的角速度(查看效果时:注意物体面向的角度)

寻路物体与目标物的停止距离

寻路物体的外层碰撞高度

寻路物体的外层碰撞高度位置

 

自动寻路区分层

  1. 1.      在寻路视窗添加层
  1. 2.      选中需要添加寻路层的物体,选择到相应的层
  1. 3.      Bake
  2. 4.      将需要自动寻路的物体选择可以行走的层

      

每次从初始动画开始播放

      

停止播放动画

animation.Stop("run");

数值转成字符串

guiText.text = score.ToString();

血条

       public GUITexture blood;

void Update () {

              blood.pixelInset = new Rect(blood.pixelInset.x,blood.pixelInset.y,

                                                                           nowBlood/maxBlood*myGuiTextureWidth,blood.pixelInset.height);}

切换场景

             if (firstEnemyPos <= 5) {

                    nowBlood -= 5.0f;

                    if(nowBlood <= 0){

                           nowBlood = 0;

//                        Application.LoadLevel("GameOver"); //一方法

                           Application.LoadLevel(1);//切换场景// 二方法

                    }

               }

               注意:不要忘记将场景文件拖到发布视窗

11.20

自动寻路蓝色区域烘焙属性

寻路蓝色区域与障碍物之间半径

寻路蓝色区域与地面的高度

寻路蓝色区域烘焙最大高度

寻路蓝色区域烘焙最大台阶高度

11.21

阶段项目

资源导出

如:模型,选择模型->右键选择selectDependencies

 

11.26

关节

铰链关节

固定关节

弹簧关节

OnJointBreak()关节断开时调用

 

OnTriggerEnter。。。触发器

OnCollisionEnter.. 碰撞器

 

Unity播放视频

  1. 1.       必须安装QuickTime播放器
  2. 2.       影片格式不能是FLV格式

播放视频MovieTexture

public MovieTexture movTexture;

void Start() {

renderer.material.mainTexture = movTexture;

movTexture.Play();

}

11.28

配环境:单位调成米,自动保存的数量及时间,max点的大小

Alt + 鼠标中键 旋转

Alt + W 视窗最大/最小化

一直按住Shift键  复制

Z 快速将物体到屏幕中心显示

F4 线框显示

X 显示/隐藏坐标位置

 

吸附 点吸附

锁定角度 ,

l  调整坐标位置 -> -> 调节到需要的位置即可

l  选中  -> 加线

l  选中  -> 两点之间加线

l  选中 -> 挤出

l   不连续一圈线

连续一圈线

l  删除线 退格键(但点还保留在模型上)

删除点跟线 Ctrl + 退格键(点跟线都删除)

l  补面:选择 ->

l  镜像

 

打组是  取消是Ungroup

Attach是 取消是

 

l  打组Group与Attach区别

Group打组后在unity显示是

Attach在unity中显示是

12.1

Max贴图(分UV)

先找到 ->U…UVW

给物体棋盘格->快捷键M(调到材质球)-> 点击选择->找到 -> 设置图片重复倍数

 

将棋盘格材质球给到物体上

->

法线贴图(凹凸贴图)

 

 

 

 

 

 

 

 

 

 

 

 

12.2

Shader应用

CubeMap

 

1. 将物体的shader更改为

2. 创建CubeMap

3. 将CubeMap指认到相应位置

4. 选择CubeMap到 -> 找到脚本应用即可

5. 创建脚本RenderCubemapWizard,放到Project视窗中即可,注意脚本中

@MenuItem("GameObject/Render into Cubemap"),是指在GameObject找到Render into Cubemap

RenderFromPosition,是指需要反射的物体

CubeMap,是指帮助反射第二步创建的CubeMap

 

 

 

 

 

 

 

12.8

Network

客户端  服务器

 

后台实时运行

 ->

 

[RPC]

//接收消息(服务器,客户端只要带有[RPC]标识,即可互相接受消息)

void MyMessage (string myMessage02,NetworkMessageInfo info)

{

      message += "\n" + "发送者" + info.sender + myMessage02;

}

 

调用MyMessage方法

networkView.RPC("MyMessage",RPCMode.AllBuffered,传入的信息); 

 

使用RPC调用网络请求必须添加组件NetworkView

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12.10 NGUI

 

1. 制作Sprite(精灵)

2. 到NGUI中Great->Sprite

3. 精灵显示样式,Filled为填充样式

此选项可制作效果,调整参数

 

若向反向旋转

 

 

1. 制作图集,点击New,创建新图集

2. 选择图片

3. 点击Creat

 

注意血条制作 制作精灵,并在此选项中   

选到,调整FillAmount数值

 

如何将Sprite形成按钮?

    添加组件

如果想让按钮有事件,必须添加碰撞,BoxCollider

     注意将BoxCollider勾选

 

 

 

 

 

想让Lable随着按钮范围始终填充状态

选测Anchors将Target选择你要绑定到的物体

 

若将整个按钮与屏幕位置分辨率匹配,再将sprite的Anchors下的Target选择为UIRoot

 

补充:若在Android平台发布出现SkyBox像素不清晰,选择到相应图片,将图片设置成

 

NGUI如何支持中文,制作NGUI字体集

一方法:

1. 创建空物体,添加UIFont组件

2.

将FontType设置为Dynamic

在TTF Font添加字体

3. 然后将空物体形成预置物(形成NGUI字体集)

4. 到UILable属性中 点击Font

选择刚才制作的字体即可。

二方法:直接更改属性 ,将原来NGUI选项选成Unity,将需要的字体拖到后方即可。

 

 

九宫格

用于NGUI优化,只用一张图的某一部分像素,但即使放大也不影响清晰度

选择Sprite到Edit

调节Border选项,选择图片中需要的像素部分, -> 返回到Sprite

-> 注意将sprite的Type设置成Sliced

 

滑动效果

1. 创建sprite,创建

2. 将sprite添加

3. 将 与sprite打组, 为父级

4. 注意将 拖到sprite属性 中

 

 

延伸->在按钮滑动效果添加sprite ,sprite与 大小一致,在sprite范围内也可以实现滑动效果

将sprite同样添加 组件即可。

注意:深度值

 

12.11

l Animation

Mecanim

Avater(Mecanim可识别骨骼的标识)

Retargeting(动画的互相应用)

AvaterMask(骨骼遮罩)

    

    Weight 权重

    权重是指某个动画层在整个动画中的影响,

    若权重值为1则此层动画将与整个动画融合

    若权重值为0则此层动画与整个动画完全不融合

 

12.13

Unity 2D

将图片放到项目管理视窗中,更改图片格式为Sprite

如果精灵需要切割成多张,将SpriteMode更改为Multiple

如果只是一张精灵,将SpriteMode设置为Single

 

2D动画

将需要结合在一起形成2D动画的精灵,选中拖到场景视窗中,会有窗口弹出,提醒保存动画,将动画保存即可形成2D动画。

 

注意:

若需要精灵形成触发事件,则添加2D碰撞,2D刚体,并且2D刚体中

不要将IsKinematic勾选,否则触发事件不会形成。

若完全不需要重力,将GravityScale设置为0.

 

 

转载于:https://www.cnblogs.com/liuruitao/p/4244462.html

Unity3d 要点板书相关推荐

  1. mysql1440秒未活动_修改phpMyAdmin中的默认1440超时时间

    Struts2版本升级到struts2 2.3.15.1操作说明 Struts2的官网公布了一个远程命令执行漏洞,官方强烈建议升级到2.3.15.1或者以上版本,该版本包含校正过的struts2核心库 ...

  2. python操作数据库的几种方法_python操作数据库的几种方式

    Back to Edit Distance(LCS + LIS) Given 2 permutations of integers from 1 to N, you need to find the ...

  3. unity3D学习之音频数据的采集要点-audio菜鸟笔记6

    之前的那些博文都只是很粗糙的知识跟一些自己的练习而已,这次我将介绍一下自己用过的音频数据采集的方法: 1.AudioClip.GetData(a, b) 可以直接从AudioSource组件中的音频文 ...

  4. 对部门的建议和期待怎么写_教学反思到底该怎么写?这些要点一个都不能少(建议收藏)...

    教学反思如何写 一文体结构 建议把"教学反思"看成"一事一议"的实用性议论文.其写作结构可以概括为"教学实例--得失(成败)分析--理性思考" ...

  5. 从一点儿不会开始——Unity3D游戏开发学习(一)

    一些废话 我是一个windows phone.windows 8的忠实粉丝,也是一个开发者,开发数个windows phone应用和两个windows 8应用.对开发游戏一直抱有强烈兴趣和愿望,但奈何 ...

  6. 计算机结构原理初步教案板书设计,(计算机工作原理)教学设计(教案)

    <(计算机工作原理)教学设计(教案)>由会员分享,可在线阅读,更多相关<(计算机工作原理)教学设计(教案)(5页珍藏版)>请在人人文库网上搜索. 1.计算机系统的基本组成教学设 ...

  7. Unity3D学习笔记之八为场景添加细节(一)

         这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程<Unity游戏引擎的基础入门视频教程>,下载链接附在第二篇学习笔记中.      我花了30分钟做了一个中等大小的迷宫场 ...

  8. 深入浅出聊Unity3D优化:从Draw Calls到GC

     原文地址:http://www.gameres.com/663040.html 5 天前 上传 下载附件 (26.59 KB) GameRes游资网授权发布 文/陈嘉栋 0x00 前言 刚开始写 ...

  9. unity3d api 中文文档_unity3D游戏开发工程师完整简历范文

    基本信息 姓名:七分简历 年龄:23岁 电话:131****7089 邮箱:689262****@qq.com 经验:1年 意向:unity3D游戏开发工程师 教育背景 时间:2011-09 - 20 ...

最新文章

  1. 17福师《计算机应用基础,17春福师《计算机应用基础》在线作业一.doc
  2. linux为3种人准备了权限,linux的3种特殊权限
  3. Linux下如何查看系统启动时间和运行时间(转)
  4. 一次性通过软考网工方案
  5. Visual Studio + C# + Xamarin = iOS/Android/Windows Apps
  6. TP5:异常处理封装——3
  7. 行!人工智能玩大了!程序员:太扯,阴谋!你怎么看?
  8. 通过源代码研究ASP.NET MVC中的Controller和View(三)
  9. 洛谷P2569 [SCOI2010]股票交易
  10. TCP系列51—拥塞控制—14、TLP、ER与拥塞控制
  11. python 爬虫 使用selenium 控制浏览器 进行搜索操作
  12. ORACLE11g“空表”无法导出的深入分析
  13. oracle insert 字符插入问题
  14. postgresql索引
  15. HTMl5 的新特性
  16. Java入门电子书百度网盘下载,附面试答案
  17. 商空间的理解(Quotient space)
  18. Flex 绘制圆形或椭圆并填充图片
  19. 利用for循环生成由ABCDEFG...XYZ,26个大写字母与26个小写字母组成的数组
  20. UE4 开发从入门到入土

热门文章

  1. 5g在计算机中的应用,以后5G能不能运用在电脑上面?
  2. 追你到天涯海角(1)
  3. 论文笔记:REV2: Fraudulent User Prediction in Rating Platforms
  4. 秋招记录总结---加油,陌生人
  5. C# TextBox换行原理
  6. linux网卡缓冲区设置,【Linux】tcp缓冲区大小的默认值、最大值
  7. 用MFC如何高效地绘图
  8. NLP 开源形近字算法之相似字列表(番外篇)
  9. linux 查端口 查进程 (全网最详细)
  10. 根据子网掩码计算网络中的主机数量