unity3d 学习笔记(三)
工作现场查看:
飞行模式: 按住鼠标右键 w s a d 围绕浏览当前视图, q e 上下浏览。 交模式下无效 需透视图
移动吸附:移动状态(w) ctrl+shif 移动吸附在其它物体上移动
顶点吸附:移动状态(w)v 键 移动吸附在其它物体上移动
特定的增量移动: 移动状态(w) ctrl ,按特定的增量移动, 能够设置增量 Edit-snapSettings.
Unity脚本的使用
void Start () {
ScriptB sb = GetComponent<ScriptB>();
sb.Say();
}
void Update () {
this.transform.Rotate(new Vector3(0,speed * Time.deltaTime,0));
rigidbody.mass = Mathf.Sin(Time.deltaTime)+1;
}
!gameObject上的属性都能够直接使用。没有的能够通过getComponent获取訪问
。通常transform 也能够替代gameObject进行使用 eg:transform.renderer... 假设一个gameObject对象没有transform组件就不能在场景中显示,仅仅能用来存储数据(为什么能够替代gameObject使用还没搞懂).
public Transform target;
void Update () {
target.renderer.material.color = Color.red;
}
/////
public GameObject target;
void Start () {
target = GameObject.Find("Main Camera/sphere");
}
//上面假设有多个名称为sphere的他找的是最前面的一个
//依据标签訪问
t
arget = GameObject.FindWithTag("fuck");
GameObject.FindGameObjectWithTag("fuck"
GameObject.FindGameObjectsWithTag("fuck"); 多个
时间Time类:
void OnGUI()
{
GUILayout.Label("当前时间:" + Time.time);
GUILayout.Label("自上一帧时间:" + Time.deltaTime);
GUILayout.Label("固定增量时间:" + Time.fixedTime);
GUILayout.Label("固定增量时间间隔:" + Time.fixedDeltaTime);
GUILayout.Label("平滑delata时间:" + Time.smoothDeltaTime); //增量时间能够在edit-projectSetting-time中设置
}
keywordyield:在迭代器块中用于向枚举数对象提供值或发出迭代结束信号。迭代器块有两个特殊语句: ●yield return <expression_r_r_r_r>; ●yield break; 迭代器块
迭代器块是有一个或多个yield语句的代码块。以下三种类型的代码块中的随意一种都能够是迭代器块: ■方法主体 ■訪问器主体 ■运算符主体
yield语句仅仅能出如今迭代器块中,该块可用作方法、运算符或訪问器的体。
这类方法、运算符或訪问器的体受下面约束的控制:
■不同意不安全块。
■方法、运算符或訪问器的參数不能是 ref 或 out。
void Start () {
StartCoroutine("Example"); //用StartCoroutine进行触发
print("Hello");
print ("world");
}
//全部使用yield的函数必须将返回值类型设置为IEnumerator类型
IEnumerator Example() {
print(Time.time);
yield return new WaitForSeconds(2);
print(Time.time);
}
类似于as、js中的setTimeout
Random:
void Start () {
print(Random.seed);
print(Random.value);
print(Random.Range(0,1));
print(Random.Range(0.0f,1.0f));
}
Returns a random integer number betweenmin [inclusive] and max [exclusive] (Read Only).
If max equalsmin, min will be returned. The returned value will never bemax unless min equals max.
物体间的相互通信
(1) 有层级关系的物体间的通信
BroadcastMessageCalls the method named methodName on every MonoBehaviour in this game object or any of its children.
SendMessageCalls the method named methodName on every MonoBehaviour in this game object.
SendMessageUpwardsCalls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour.
public class SendMessageUpward : MonoBehaviour {
void OnMouseOver()
{
SendMessageUpwards("someoneSay","fuck u");
}
}
public class RecieveMessage : MonoBehaviour {
void someoneSay(string str)
{
print("someoneSaied" +str);
}
}
(2)没有层级的关系的通信。能够通过c#的托付事件
public class EventDispatcher : MonoBehaviour {
public delegate void EventHandler();
public event EventHandler MouseOver;
void OnMouseOver()
{
if(MouseOver != null)
{
MouseOver();
}
}
}
public class EventListener : MonoBehaviour {
public GameObject dispatcher;
// Use this for initialization
void Start () {
EventDispatcher ds = dispatcher.GetComponent<EventDispatcher>();
ds.MouseOver +=Listen;
}
void Listen()
{
transform.Rotate(new Vector3(0,10*Time.deltaTime,0));
transform.renderer.material.color = Color.cyan;
}
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
unity3d 学习笔记(三)的更多相关文章
- Unity3D学习笔记2——绘制一个带纹理的面
目录 1. 概述 2. 详论 2.1. 网格(Mesh) 2.1.1. 顶点 2.1.2. 顶点索引 2.2. 材质(Material) 2.2.1. 创建材质 2.2.2. 使用材质 2.3. 光照 ...
- Unity3D学习笔记3——Unity Shader的初步使用
目录 1. 概述 2. 详论 2.1. 创建材质 2.2. 着色器 2.2.1. 名称 2.2.2. 属性 2.2.3. SubShader 2.2.3.1. 标签(Tags) 2.2.3.2. 渲染 ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- [Firefly引擎][学习笔记三][已完结]所需模块封装
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读: 笔记三主要就是各个模块的封装了,这里贴 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- java之jvm学习笔记三(Class文件检验器)
java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...
- VSTO学习笔记(三) 开发Office 2010 64位COM加载项
原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...
- Java IO学习笔记三
Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...
- NumPy学习笔记 三 股票价格
NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...
- Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
随机推荐
- JavaScript系列--JavaScript数组高阶函数reduce()方法详解及奇淫技巧
一.前言 reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值. reduce() 可以作为一个高阶函数,用于函数的 compose. reduce()方 ...
- Ansible 管理服务和软件
[root@Ansible ~]# ansible RAC -m yum -a 'name=iscsi-initiator-utils state=installed' RAC_Node1 | suc ...
- JSP中文件的上传于下载演示样例
一.文件上传的原理 1.文件上传的前提: a.form表单的method必须是post b.form表单的enctype必须是multipart/form-da ...
- 洛谷 P1709 隐藏口令Hidden Password
->题目链接 题解: 贪心+字符串 #include<iostream> #include<cstring> #define N 5000005 using namesp ...
- Web系统自动化部署脚本
Web开发的项目,除了在本地直接运行外,还可能经常需要在服务器上部署. 写了个自动化部署的脚本,仅供参考. 不少地方需要配置路径,个人建议使用绝对路径,不用依赖执行脚本时所在的路径. #!/bin/s ...
- Java提高:采用异常链传递异常
一.分析 异常需要封装,但是仅仅封装还是不够的,还需要传递异常.一个系统的友好型的标识,友好的界面功能是一方面,另一方面就是系统出现非预期的情况的处理方式了. 二.场景 比如我们的JEE项目一般都又三 ...
- ios开发runtime学习四:动态添加属性
#import "ViewController.h" #import "Person.h" #import "NSObject+Property.h& ...
- Json入门 分类: C_OHTERS 2014-04-23 16:20 601人阅读 评论(0) 收藏
参考<疯狂android讲义>>730页 JSON的基础请参考W3SCHOOL的教程: http://www.w3school.com.cn/json/index.asp 例子: h ...
- Java NIO详细介绍
不错的文章,推荐一下. http://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html JavaNIO非堵塞技术实际是采取Re ...
- 新版itunes添加铃声
iTunes 铃声制作-图文教程 ① 点选设备iPhone - 勾选手动管理音乐和视频 - 点击应用 注意:因本操作涉及iPhone内音乐和视频,请操作前先对音乐和视频进行相关备份,以免同步后被刷掉造 ...