- 音频

audio.PlayOneShot (getSound);
//播放一个音频剪辑,必须添加音频源组件
AudioSource.PlayClipAtPoint (getSound,transform.position);
//在指定位置播放剪辑。播放完成后自动消除音频源。这种方法不需要添加音频源组件

- 修改光源的颜色

public Light doorLight;
//doorLight.color = Color.red;

- 对象查找

using UnityEngine;
//通过物体名查找某个GameObject
GameObject.Find("powerTxt").GetComponent<GUIText>();
GameObject.Find("powerTxt").GetComponent("GUIText") as GUIText;
//查找一般放在start函数中,赋值给某个变量,Find是在所有游戏物体中查找,需要遍历,浪费性能,最好不要在update中使用此方法

- 光线投射的碰撞检测

三个参数:射线的起点,方向,碰撞信息,长度
如果返回true,hit将包含碰撞的更多信息
    RaycastHit hit;if (Physics.Raycast (transform.position, transform.forward, out hit, 3)) {if (hit.collider.transform.tag == "playerDoor"){hit.collider.SendMessage ("openMyDoor");}}

- SendMessage

cube.SendMessage ("addSum1",10);
//执行游戏物体脚本中的指定函数

- 以秒计算,完成每一帧的时间

Time.deltaTime

- 播放某个动画

animation.Play ("doorshut");

- 角色控制的碰撞检测。在移动的时候,当controller碰撞到collider时OnControllerColliderHit被调用。

void OnControllerColliderHit(ControllerColliderHit hit)

- 销毁游戏物体,时间参数

Destroy(gameObject,1);

- 游戏物体旋转

transform.Rotate(0,Time.deltaTime * 100,0);改变物体的旋转方向
instance.transform.rotation = Quaternion.Euler(0, 180, 0);

- 触发碰撞,需要将is Trigger选中

void OnTriggerEnter(Collider coll)

- xy方向的移动

moveDir = new Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxis("Vertical"));
///xy方向的移动
///同上
float x = Input.GetAxis("Horizontal") * Time.deltaTime * speed;
float z = Input.GetAxis("Vertical") * Time.deltaTime * speed;
transform.Translate(x,0,z);

- 检查键盘上某个键是否按下

Input.GetKey(KeyCode.W);
///按下返回true

- 复制一个预设,添加力,让其物理运动

Transform n = Instantiate(zidan,transform.position,transform.rotation) as Transform;
Vector3 fwd = transform.TransformDirection(Vector3.forward);
///n.rigidbody.AddForce(fwd * 1000);  过时了
n.GetComponent<Rigidbody>().AddForce(fwd * 1000);15.GetComponent<Main>().enabled = false;
GameObject.Find ("Plane").GetComponent<Restart>().enabled = true;///将脚本Main禁用
///启用Plane物体上的Restart脚本

- 画UI部分都在OnGUI来处理

void OnGUI(){if (GUI.Button(new Rect(500, 250, 80, 40), "退出"))//创建文本按钮{Application.Quit();//退出应用}if (GUI.Button(new Rect(300, 250, 80, 40), "开始")){Application.LoadLevel("01");//加载关卡}
}

- 加载一个纹理

///transform.renderer.material.mainTexture = Resources.Load("0") as Texture;过时了transform.GetComponent<Renderer>().material.mainTexture = Resources.Load("0") as Texture;//或者
render = (Renderer)instance.GetComponent("Renderer");
render.material.mainTexture = (Texture)Resources.Load("0");

- 加载文件夹里的序列图,存放到一个数组中。

注意:juse为文件夹名,必须放到Resources文件夹下

private Object[] anim;
anim = Resources.LoadAll ("juese");

- 修改文字字体

//要修改文字字体,可以创建一个GUISKIN,在这个GUISKIN中修改字体,然后GUI.skin = mySkin;
GUI.color = Color.red//文本颜色

- 让序列图动起来

//--------------------动画开始---------------------------------GUILayout.Label ("当前播放第" + nowFram + "帧");GUI.DrawTexture(new Rect(10,150,80,100),(anim[nowFram] as Texture),ScaleMode.StretchToFill,true,0);time += Time.deltaTime;if (time >= 1.0 / fps) {nowFram++;time = 0;if(nowFram >= totalFram){nowFram = 0;}}
//--------------------动画结束---------------------------------

- 文本

userName = GUI.TextField (new Rect(400,70,200,30),userName,10);
///输入文本
pwd = GUI.PasswordField(new Rect(400,100,200,30),pwd,"*"[0],20);
///密码文本

- C#和js互相调用

首先删掉#pragma strict严谨编译模式
js文件放在Plugins中
首先编译Plugins中的代码
然后Editor
最后其它代码

///js代码
function OnGUI()
{if(GUI.Button(Rect(100,200,100,50),"js调用c#")){var cs  = GetComponent("TestCS");cs.CallMe("js调用c#");}
}public function CallMe(tmp:String)
{Debug.Log(tmp);
}///c#代码
void OnGUI(){if(GUI.Button(new Rect(100,100,100,50),"C#调用js")){TestJS js = (TestJS)GetComponent("TestJS");js.CallMe("C#调用js");}
}public void CallMe(string temp){Debug.Log(temp);
}

- 通知游戏主线程等待

///WaitForSeconds()用于通知游戏主线程等待。一定要将该方法返回类型修改IEnumeratorDebug.Log ("开始等待:" + Time.time);yield return new WaitForSeconds (3);Debug.Log ("结束等待:" + Time.time);

- 随机数

可以随机整数和浮点数

int a = Random.Range (0,100);
float b = Random.Range (10.0f,100.0f);

- FixedUpdate

Update会在每次渲染新的一帧时,被调用。
而FixedUpdate会在每个固定的时间间隔被调用,FixedUpdate则不受帧率的变化,它是以固定的时间间隔来被调用,那么这个时间间隔怎么设置呢?
Edit->Project Setting->time下面的Fixed timestep。所以处理Rigidbody的时候最好用FixedUpdate。

- 在unity中添加新的菜单

using UnityEditor;
[MenuItem ("新的菜单/fuck")]
static void DoSomething () {Debug.Log ("Perform operation");
}

- 抗锯齿

在3D渲染过程中,可能会出现锯齿。为什么会出现锯齿呢?因为它为了运行效率而牺牲了渲染效果,锯齿越多说明渲染效率越快。
Edit-ProjectSettings—Quality Anti Aliasing设置抗锯齿

- 摄像机

Camera.active = true;false

- 刚体 Rigibody

Mass 质量,数值越大物体下落的越快。
Drag 阻力,
Use Gravity是否使用重力
Is Kinematic是否受物理的影响

- 碰撞与休眠

刚体与物体之间是存在碰撞的。刚体的碰撞分为三种:进入碰撞、碰撞中、碰撞结束。
休眠可以理解为让模型变为静止状态。

OnCollisionEnter();///开始接触时,立刻调用此方法
OnCollisionStay();///碰撞的过程中,每帧都会调用,知道碰撞结束
OnCollistionExit();///停止接触

- 碰撞器

游戏对象需要感应碰撞,必须给其添加碰撞器:
Box Collider 盒子碰撞器
Sphere Collider 球体碰撞器
Capsule Collider 胶囊碰撞器
Mesh Collider 网格碰撞器
Wheel Collider 车轮碰撞器

- 碰撞

刚体Rigibody 碰撞体Collider 触发器 is Trigger

碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能发生碰撞。
碰撞的双方中一定要有一个有刚体组件存在,并且双方必有碰撞体组件。

刚体必须在主体上,is Trigger可以是二者之一
is Trigger 开启时,触发事件
关闭时,碰撞事件

下面的参数都表示对方

触发信息检测:
1.MonoBehaviour.OnTriggerEnter( Collider other )当进入触发器
2.MonoBehaviour.OnTriggerExit( Collider other )当退出触发器
3.MonoBehaviour.OnTriggerStay( Collider other )当逗留触发器

碰撞信息检测:
1.MonoBehaviour.OnCollisionEnter( Collision collisionInfo ) 当进入碰撞器
2.MonoBehaviour.OnCollisionExit( Collision collisionInfo ) 当退出碰撞器
3.MonoBehaviour.OnCollisionStay( Collision collisionInfo ) 当逗留碰撞器

发生碰撞的主体一定是要带刚体的,即只有带刚体的碰撞体去撞其他碰撞体时,双方才会收到碰撞事件,以下是实验:
一、控制A(刚体加碰撞体)撞击 静止的B(只有碰撞体),双方能收到碰撞事件。
二、控制B(只有碰撞体)撞击 静止的A(刚体加碰撞体),双方收不到碰撞事件。
三、让A(刚体加碰撞体)自由下落,然后控制B(只有碰撞体)去撞击A,双方能受到碰撞事件。

得出的结论似乎是如果碰撞双方只有一个有刚体,那么那个刚体一定要处于运动的状态下才会有碰撞事件发生。

收到触发事件,必须满足如下三个条件:
1、必须都要有碰撞器组件(Collider),其实上面的碰撞事件同样也需要这个前提条件。
2、必须有一个物体带刚体组件,并且处于运动状体中(包括主动运动去撞击别人和在运动过程中被别人撞击)。
3、两个碰撞器中至少有一个开启了IsTrigger。

一、开启IsTrigger那个物体会被物理引擎锁忽略掉,所以会产生两个物体穿越的情况。
二、两个对象要么都收到碰撞事件,要么都收到触发事件,不会出现一个收到触发事件,一个收到碰撞事件的情况。

3.碰撞器和触发器的区别?
碰撞器(Collider)有碰撞效果,isTrigger= false;可以调用OnColliderEnter/Stay/Exit。
触发器没有碰撞效果,isTrigger= true; 一个触发器不会碰撞刚体,当一个刚体进入或者退出触发器时,将发送:OnTriggerEnter/Stay/Exit。
4.碰撞发生的必要条件?
两个物体必须带有碰撞器(Collider),一个物体还必须带有刚体(RigidBody)或则角色控制器(CharacterController,自带胶囊碰撞器,已经封装了一个刚体在里面)。

U3D[02.21]相关推荐

  1. FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM

    FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM T.. = Timeline support支持时间轴 .S. = Slice th ...

  2. Unparseable date: “Fri Sep 02 21:22:57 CST 2022

    异常 Unparseable date: "Fri Sep 02 21:22:57 CST 2022"(不可分解的日期:XXX) Exception in thread " ...

  3. HTTP请求历险记(Go语言版) | Gopher Daily (2021.02.21) ʕ◔ϖ◔ʔ

    每日一谚:Simplicity comes from orthogonality and predictability. Go技术专栏"改善Go语⾔编程质量的50个有效实践"主要满 ...

  4. 分布式技术一周技术动态 2016.02.21

    分布式系统实践 1. 远程接口设计经验分享 http://mp.weixin.qq.com/s?__biz=MzAwNjQwNzU2NQ%3D%3D&idx=2&mid=4020649 ...

  5. 【381天】我爱刷题系列140(2018.02.21)

    @(一只心中无码的程序员)专栏 叨叨两句 ~ SQL习题035 1 题目描述 film表 字段 说明 film_id 电影id title 电影名称 description 电影描述信息 CREATE ...

  6. druid mysql 乱码_2017.02.21   Mysql 字符集 乱码 排错过程

    1,命令行确保以下字符集一致 *1, shell的字符集 *2, connect的字符集 *3, server的字符集 *4, database, table 字符集 MySQL API 编程,命令行 ...

  7. 信息学奥赛训练体系(2023.02.21)

    信息学奥赛寒假.暑假.国庆十一假期 如何进行集训 信息学奥赛寒假.暑假.国庆十一假期 如何进行集训_dllglvzhenfeng的博客-CSDN博客 信息学奥赛 CSP-J2 CSP-S2第2轮 复赛 ...

  8. 电影乱弹:我脑中的橡皮擦 - A Moment to Remember (2005.02.21)

    "俗人看俗片"这是我的自我剖析.如果你对看韩剧嗤之以鼻,那么这篇俗人关于韩剧的乱弹可能会消耗你的纸巾(吐).我喜欢韩剧,喜欢其中细腻的生活细节,喜欢其中的唯美场景,更喜欢其中的PP ...

  9. 02.21:流量表征入门

    首先区分了什么叫流级别特征和包级别特征.包就是包长,包负载熵等,针对包这个个体而言.而流级别就可以理解为一次对话中所有的包所携带的特征.比如流时间,平均包长,等等. DPI,deep packet i ...

  10. kindel读书笔记——第二个月2017.02.22-03.21

    嫌疑人X的献身 [2017/02/21, ¥9.00] 拿别人的生命来献身,其实是一种残忍. 当我看到石神自杀未遂那一段后,突然明白有些时候,生命被重新赋予后,便有了宿命.

最新文章

  1. js函数中的参数的个数
  2. Github上传代码指南(Window版,同样适合Linux版)
  3. python 线程异步执行踩坑
  4. POJ-1845 数论
  5. C# 打开文件/跳转链接
  6. 漫画:IT公司年终总结会开崩了...
  7. 基于射影不变量的视野分界线划分算法
  8. SAP License:SAP系统上线后的预收款处理
  9. antd 使用upload 组件,使用自定义上传行为,覆盖默认action 访问请求
  10. 安卓系统抓包工具大全
  11. 【经典传颂】人月神话The Mythical Man-Month
  12. 百度程序员开发避坑指南(前端篇)
  13. 正则表达式 中文 英文 空格
  14. MicroBlaze系列教程(1):AXI_GPIO的使用
  15. LinuxProbe 0x14 虚拟网站主机功能(基于端口)、Vsftpd服务传输文件、TFTP简单文件传输协议
  16. {转}C#使用微软语言包来获取中文汉字的拼音、拼音首字母、中文繁体
  17. js校验图片是否加载成功或失败
  18. 第一个小游戏“三子棋”超详细
  19. 激光雕刻机图片解析C#上位机stm32f407控制板源码
  20. allegro导出3D文件

热门文章

  1. 无线打印机与手机连接到服务器,图文详解手机通过无线Wifi连接打印机的方法...
  2. 力扣刷题思考:347. 前 K 个高频元素
  3. java拼图游戏难度怎么分级_拼图游戏有什么技巧吗?
  4. Mac上通过docker配置PHP开发环境
  5. 解决ie浏览器兼容ES6语法问题
  6. 大数据工程应用 数据分析_大数据工程的方式
  7. 计算机网络树形结构例子,网络拓扑结构大全和实例
  8. linux 系统挂载ISO 文件
  9. 光纤跳线的类型和区别?
  10. linux ansys172 卸载,基于ANSYS 经典界面的密封垫片的加载-卸载仿真