当前位置: 首页 > 编程日记 > 正文

Unity Note 1

1.把开始时间设定到播放完成的时间点,作为倒放的起点
  animation["clip"].time=animation["clip"].clip.length;
  animation["clip"].speed=-1;
  animation.Play("clip");

2.寻找场景中物体var door = GameObject.Find("door").transform;

3.全局变量用法,A.js 里的 static var AAA 到 B.js 里调用方式为 A.AAA
4.function Awake() 创建一个物体时自动运行的程序
5.js 中可以使用 "" + 0 将数字转换为字符串
6.3d字体较为模糊是因为使用了anti-aliasing,可以创建大的字体物体,将字体属性中的 size 设为小一些来解决
7.InvokeRepeating(函数名, 开始执行函数的时间, 调用函数的间隔时间);和 Update() 差不多但可以间隔着时间执行
8.Quaternion.Slerp(起点,目标点,期间耗费时间)
9.解决轴心问题,用物体绑定到 Empty GameObject 之下
10.隐藏鼠标 Screen.showCursor = false;
11.FixedUpdate()以指定频率被调用。
可以在 Edit -> project settings -> Time -> Fixed Timestep 中设定该频率。
12.计算圆半径 wheel.tireGraphic.renderer.bounds.size.y / 2;
13.显示载入关卡的进度条
var levelToLoad = 1;

function LoadNewLevel () {

if (Application.CanStreamedLevelBeLoaded (levelToLoad)) {

Application.LoadLevel (levelToLoad);

}

}

如果想在播放器中显示下载进度,可以通过GetStreamProgressForLevel()函数来读取进

度。
14.用灯光中的 cookie 选项可以模拟移动的云的阴影
15.模拟爆炸伤害
1)
使用 Component->Particle->World Particle Collider 添加一个粒子碰撞物体
如果 Send Collision Message 被启用, 任何发生碰撞的粒子都会发送一个
OnParticleCollision()到粒子系统附加的物体和与粒子发生碰撞的物体上。
2)
调用 OnDrawGizmosSelected () 或者 OnDrawGizmos() 函数
16.function Update () {

if (Input.GetButtonDown ("Jump")) {

if (renderer.material.mainTexture.isPlaying) {

renderer.material.mainTexture.Pause();

}

else {

renderer.material.mainTexture.Play();

}

}

}
17.function Start () {

yield WaitForSeconds(3);

print("hello");

}.
18.容器菜单里的选项随着导入工程而变化
19.把物体直接层级面板拖动到工程面板就是Prefab了
20.
@script AddComponentMenu("Universol Conraller/Cube Controller") //把容器添加进菜单栏
@script RequireComponent(Llight) 在物体中加入某个容器
21.Camera.main可以得到相机
22.Collider 必须搭配 Rigidbody 来使用,就像 Rigidbody 必须搭配 GameObject 一样
23.RigidBody 中的 IsKinematic 勾选后就不受物理控制了,没有重力了,但加了碰撞的Rigidbody物体还是会接收碰撞,但只能该物体碰撞它物体,如果受到它物体的碰撞不会发生反应,但触发器能接收信号,一般 IsKinematic 物体在完全受用户控制而不受其他物体影响时使用
宜于勾选的物体
赛车、子弹、人物、地形等
不宜勾选的物体
可被撞倒的路边垃圾桶、足球等
RigidBody 中的 Continuous/Continuous Dynamic 可以让运动物体碰撞静止物体时产生触碰信号
RigidBody 中的 sleepVelocity 可以忽略最小的运动来停止
24.Reset() 替换,用于设置物体的默认值也可以用
25.几个物体只要一个激活了其他就不能被调用的情况可以用设置 Static 物体来处理
26.iphone的常亮:iPhoneSettings.screenCanDarken = false;
27.
Good organization is important if you want your workflow to be smooth and hassle

free.

Use instantiated Prefabs wherever possible.

Try organizing by function instead of type.

Use Empty GameObjects as containers.

28.音效来源Apple's own Garage Band, Logic Studio 8 and Soundtrack / Soundtrack Pro software
29.CollisionFlags 可判断出碰撞物体的方向
30.Camera 容器的 Depth 参数可以调整几个摄像机的层级关系
31.为什么这里要用 SendMessage();playerLink.GetComponent(ThirdPersonController).SendMessage("HidePlayer");
32.LOD(Level-of-detail 编辑器)
33.QualitySettings.currentLevel = QualityLevel.Fastest;
34.ctrl + shift + n 新建 Empty GameObject
35.BeginGroup + EndGroup 可以创建一个类似 window 的区域,同时进行移动操作
36.导入文件时勾选 Generate Colliders 选项会自动为物体加入 MeshCollider 碰撞体
37.如何查看场景是否已经完成预加载,显示进度条功能
function Start() {
var async : AsyncOperation = Application.LoadLevelAsync("Game");
yeild async;
Debug.log("Loading Complete");
}
function OnGUI() {
//显示进度条
GUI.Label(Rect(100,300,200,200),(Application.GetStreamProgressForLevel(1) * 100.ToString(), "%");;
//如果已经预加载完毕,则点击 Start 进入场景
if(GUI.Button(Rect(100,100,200,100), "Start")){
if(Application.CanStreamedLevelBeLoaded(1)) {

Application.LoadLevel("Game");

}
}

}
另外WWW.Progress 可以检测下载进度(0~1)
EditorUtility.DisplayProgressBar 可以显示进度条
38.Unity 下载 OGG 音乐

public class DAudio: MonoBehaviour

{

string url = "http://XXXXXXXXXXXXXXXXXXXXXXXX.ogg";

WWW myWWW;

AudioClip ac;

IEnumerator WWWLoading()

{

myWWW = new WWW(url);

yield return myWWW;

ac = myWWW.audioClip;

}

void Start()

{

StartCoroutine(WWWLoading());

}

void OnGUI()

{

if (myWWW.isDone)

audio.clip = ac;

}
}

39.Unity API 坏了,搜索 API 时看似搜到了结果,但一条结果都未显示
上网下载 index.js覆盖原有的 index.js

40.各种常用数学函数
Mathf.CeilToInt: 根据小数取整,如果该数不是整数,就一个正的小数让他变成整数
Mathf.FloorCeilToInt: 根据小数取整,如果该数不是整数,就一个正的小数让他变成整数
Mathf.RoundToInt: 根据小数取整数,四舍六入,如果小数是 0.5,则根据当前整数位取偶数整数
41.判断是否下载完毕
使用 myWWW.isDone 或者 myWWW.progress == 1f 来判断
尤其注意判断条件要写在 OnGUI() 里,不能写在 Update() 里,否则判断结果会有误差
42.如何在多个脚本中控制每个 Start 函数调用的先后顺序
在一个主 Start() 函数中依次调用各个脚本的初始化函数
使用全局静态变量,当前一个脚本中的相应初始化函数模块初始化完毕后,改变全局静态变量值来通知下一个脚本开始初始化。
43.自定义函数继承 Transform 或 GameObject 的方法
严格的来说是不行的,一般只能使用将自定义类作为 Component 绑定到物体上的方法,该物体可以是新建的 GameObject 或者克隆出的物体皆可
44.用 VS2010 打开项目文件失败,如下提示:
Couldn't call method SyncVisualStudioProject because the class SyncVS couldn't be found.
UnityEditor.DockArea:OnGUI()
解决方法:在 Unity 中,改变项目中的该脚本的位置(拖至其他文件夹下或最顶层),不要放在文件夹里打开,此时即可用 VS 打开,然后如果再拖回先前的文件夹后,也依然能打开
45.GUI 图片按中心进行旋转或缩放
RotateAroundPivot(float angle, Vector2 pivotPoint)
ScaleAroundPivot(Vector2 scale, Vector2 pivotPoint)

47. 查看自身能否看着目标物体(目标物体是否在背后)
Vector3 dir = (target.position - transform.position).normalized;
float direction = Vector3.Dot(dir, transform.forward);
48.如何建立不受父亲物体影响的位置移动
Transform.TransformDirection(Vector3 direction)
Transform.Translate(Vector3 direction, Space.World)
49.通过脚本控制物体的几种方法
1) 通过 GameObject.Find("物体名字") 保存该物体,然后就可随意对其控制了
2) 脚本中设置 public transform 物体,脚本给其他物体后,在外部把相应物体拖入
3) 直接给该物体,脚本中直接使用 transform 来控制
50.参照某一点缩放整个 GUI 的方法
GUIUtility.ScaleAroundPivot (Vector2 scale, Vector2 pivotPoint);
51.截屏的方法
Texture2D tex; //截图生成的图片

//最终获取图像大小

tex = new Texture2D((int)texMax.z, (int)texMax.w, TextureFormat.RGB24, false);

//截取屏幕的区域

tex.ReadPixels(new Rect(texMax.x, texMax.y, texMax.z, texMax.w), 0, 0);

//接受大小修改

tex.Apply();
52.动态缩小图片的方式
GUI.DrawTexture(new Rect(shotPngX, camRect.y, shotPngWidth, camRect.height), tex, ScaleMode.StretchToFill, true);
53.计算匀速数字变化
height = Mathf.Lerp(height, 10f, flightSpeed * Time.deltaTime / (10f - height));
54.如何锁定轴向运动
Component >> Physics >> Configurable Joint
55.在视图中按下 Ctrl + F,可以快速输入要查找的物体名字来定位物体
56.如何显示局部 GUI 界面
通过 GUI.Window() 作为窗口物体
57.相机剔除,也就是选择相机所看到的层
camera.cullingMask = 1 << LayerMask.NameToLayer("LayerName");
或者camera.cullingMask = Mathf.Pow(2, LayerMask.NameToLayer("LayerName"))
前一种效率更高,后一种让代码更易读
想添加多个剔除的话可以用
camera.cullingMask = 1 << LayerMask.NameToLayer("LayerName1");
camera.cullingMask += 1 << LayerMask.NameToLayer("LayerName2");
…………
58.鼠标经过按钮提示文字标签功能
GUI.Button(newRect(10, 10, 100, 20), newGUIContent("Click me", "This is the tooltip"));
GUI.Label(newRect(10, 40, 100, 40), GUI.tooltip);
59.焦点改变事件
curFocus = GUI.SetNextControlName("name");
name = GUI.TextField(nameRect, name);
GUI.GetNameOfFocusedControl();
注:Button不能记录 Focus 事件,需要手动记录
例如:
if(GUI.Button(ApplyRect, "OK"))
{
curFocus = "OK";
}

插件

2.地形插件:TerrainToolkit

转载于:https://www.cnblogs.com/qiengo/archive/2013/01/17/2864829.html

相关文章:

基于matlab的硅晶体模型,基于Matlab的图像处理技术识别硅太阳电池的缺陷

第 44 卷 第 7 期  2010 年 7 月 上 海 交 通 大 学 学 报 JOURNAL OF SHANGHAI J IAOTON G UNIVERSITY Vol. 44 No. 7   Jul. 2010   收稿日期 :20090908 作者简介 :柳效辉(19852) ,男 ,江西九江人 ,硕士生 ,主要从事光伏检测与光伏系统方面的研究. 徐  林(联系人) ,男 ,副…

spark- PySparkSQL之PySpark解析Json集合数据

PySparkSQL之PySpark解析Json集合数据 数据样本 12341234123412342|asefr-3423|[{"name":"spark","score":"65"},{"name":"airlow","score":"70"},{"name":"flume",&quo…

cmd库的导入Java,在cmd命令窗口导入第三方jar包来运行java文件

在cmd命令窗口导入第三方jar包来运行java文件&#xff0c;以下测试都是基于window环境&#xff0c;Linux环境没有测试。1、编译使用命令javac -cp或者javac -classpath本机测试&#xff1a;如下图所示&#xff0c;java文件路径为D:\workspace\demo,StringUtilsTest.java依赖了第…

JQuery 动态创建表单,并自动提交

前言&#xff1a;写这个是为了实现使用cookie进行自动登录的功能&#xff0c; 下面的代码是一个元素一个元素进行创建和赋值的&#xff0c; (可以尝试下将所有的html代码(form、input&#xff09;全部拼好以后放到${ } 中&#xff0c;再进行提交。) submit的时候注意下写法&…

(转)利用ArcScene进行三维地形模拟

本文摘自&#xff1a;http://www.sunzx.net/archive/1109.html 在ArcGIS Desktop中&#xff0c;可用于三维场景展示的程序为ArcGlobe和ArcScene&#xff0c;由于两者的差别&#xff0c;在三维场景展示中适用的情况有所不同。ArcScene是一个适合于展示三维透视场景的平台&#x…

Android使用自定义View时:Error inflating class错误的原因。

当在布局文件里使用自定义的View的时候&#xff0c;出现Error inflating class错误的原因&#xff1a; 1、没有定义inflate需要的默认构造函数&#xff1b; eg:自定义View为TestView,需要定义TestView(Context context),TestView(Context context,AttributeSet set); 2、这是个…

oracle的表几种连接比较,几种表连接方式的使用场景

1)nested loopnested loop&#xff0c;指的是两个表连接时, 通过两层嵌套循环来进行依次的匹配, 最后得到返回结果集的表连接方法.select t1.owner,t1.object_name,t2.OBJECT_IDfrom test_tab1 t1,test_tab2 t2where t1.OBJECT_ID t2.OBJECT_IDand ROWNUM select *from test_t…

Ajax 完整教程 (转)

Ajax 完整教程第 1 页 Ajax 简介Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成&#xff0c;这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。本文的作者是一位 Ajax 专家&#xff0c;他演示了这些技术如何协同工作 —— 从总体概述到细节的讨论 ——…

.Net中如何操作IIS(源代码)

http://www.daima.com.cn/Info/3/Info20453/转载于:https://www.cnblogs.com/luoyuan/archive/2005/09/17/238986.html

Enterprise Library Configuration DAAB的使用

1.要试用DAAB,首先要引用两个类库 第一个是Enterprise Library Shared Library 这个类库是所有Enterprist Library都必须引用的类库,它提供所需的结构类型. 第二个是Enterprist Library Data Access Application Block 这个就是daab的核心类库. 2试用DAAB的第一个步骤就是配置a…

安装oracle后在cmd,在WINDOWS上安装ORACLE RAC的注意事项

在WINDOWS上安装ORACLE RAC的注意事项1、检查防火墙和杀毒软件如果不关掉防火墙&#xff0c;在安装CRS时&#xff0c;在"Oracle Clusterware Configuration Assistant"界面会提示(1)OUI-25031错误(2)dddb1 service OracleCSService in improper PENDING state, err(9…

Tessellation (曲面细分) Displacement Mapping (贴图置换)

DirectX 11 Tessellation (曲面细分)—什么是 Tessellation (曲面细分) ?它为什么可以起到如此关键的数据?随着近期人们对 DirectX 11 的议论纷纷&#xff0c;你可能已经听说了有关 DirectX 11 最大新特性 Tessellation (曲面细分) 的大量介绍。作为一个概念。 Tessellation …

java 第12课

/*Java是面向对象的程序设计语言.面向对象的思想是将客观事物都作为实体,而对象通过实体抽象得到.所谓实体抽象,就是对实体的某些特征进行概括,使其数字化、符号化;比如:李四同学,就是一个实体,我们关心他的这些特征:姓名、性别、年龄、身高、体重等特征,就会有李四、男、21、1…

鸽巢原理(The Pigeonhole Principle)(抽屉原理)

简单形式&#xff1a;若n1个物体放进n个盒子&#xff0c;那么至少有一个盒子包含两个或更多的物体。 应用&#xff1a;给定m个整数A1,A2,...,Am,存在整数k和l&#xff0c; 0 < k < l < m,使得Ak1 Ak2 &#xff0b; ... Al能够被m整除。即在A1&#xff0c;A2&…

oracle10g删除asm组,Oracle 10G RAC 删除已有节点

如果现在在RAC集群中有三个节点c1、c2、c3&#xff1a;如果想要卸载c3节点。1、在c1或者c2上删除c3实例运行dbca然后选择Oracle Real Application Clusters database选择Instance Management选择Delete an instance选择实例&#xff0c;填写用户名密码&#xff0c;Next选择c3: …

嵌入式linux学习笔记1—内存管理MMU之虚拟地址到物理地址的转化

一.内存管理基本知识 1.S3C2440最多会用到两级页表&#xff1a;以段的方式进行转换时只用到一级页表&#xff0c;以页的方式进行转换时用到两级页表。页的大小有三种&#xff1a;大页&#xff08;64KB&#xff09;&#xff0c;小页&#xff08;4KB&#xff09;&#xff0c;极小…

C# 最快的逐一打印斐波那契结果数列的算法

用这种方法就无需将数列中的每一个元素都计算一遍了&#xff01; 说多无谓&#xff0c;直接上代码吧&#xff01; private void button5_Click(object sender, EventArgs e) { FiBoNaQi f new FiBoNaQi(); f.numberToCount (Int16)numericUpDown1.Value; f.DoFiB…

WSS 代码执行的权限提升

WSS 代码执行的权限提升 概述: WSS 默认使用身份模拟执行代码&#xff0c;也就是说用当前登录的用户身份执行Web Part或者自定义应用程序的代码访问。在大多数情况下&#xff0c;这种机制能够准确并严格地控制了标准权限的用户他对特定网站资源和敏感数据的访问&#xff0c;这也…

Oracle数据库联邦,使用联邦数据库将oracle表迁移到DB2(9.7)中的脚本说明

由于兄弟项目组要测试&#xff0c;需要将oracle中的表迁移到db2中&#xff0c;操作步骤如下&#xff1a;#1 在windows数据库中建联邦数据库服务器\用户映射connect to sampleCREATE WRAPPER DRDA LIBRARY db2drda.dll;--创建DB2包装器CREATE WRAPPER NET8 LIBRARY db2net8.dll;…

HDU 5047 Sawtooth 高精度

题意&#xff1a; 给出一个\(n(0 \leq n \leq 10^{12})\)&#xff0c;问\(n\)个\(M\)形的折线最多可以把平面分成几部分。 分析&#xff1a; 很容易猜出来这种公式一定的关于\(n\)的一个二次多项式。 不妨设\(f(n)an^2bnc\)。 结合样例我们可以列出\(3\)个方程&#xff1a;\(f(…

poj1129Channel Allocation

http://poj.org/problem?id1129 四色定理 最多有四色 从1到四搜 View Code 1 #include <iostream>2 #include<cstdio>3 #include<cstring>4 #include<stdlib.h>5 using namespace std;6 int n,w[100][100],co[100],mi,flag;7 void dfs(int x,int v)…

WCF 第二章 契约

在原子和金钱世界中&#xff0c;契约是两个或多个组织以一个已知的价格提供商品和服务的合同。在比特和服务的世界中&#xff0c;契约有类似的功能:它是两个或多个组织之间确定消息交换和消息条款及条件的合同。 契约是由服务终结点发送或接收的消息的描述。每一个终结点都由AB…

织梦 新建 php arclist,织梦arclist按照自定义字段来调用相关文章

织梦arclist按照自定义字段来调用相关文章&#xff0c;这对于想要在首页调用某个自定义字段的文章的同学来讲&#xff0c;非常不错&#xff0c;接下来看教程打开 include aglibrclist.lib.php 找到&#xff1a;//时间限制(用于调用最近热门文章、热门评论之类)&#xff0c;这里…

提高php编程效率的小结

1.如果将类的方法定义为&#xff1a;static,它的执行效率将提升为近4倍 2.php中数组的元素调用&#xff0c;使用关联数组优于索引数组 3.使用each快于print. 4.尽量使用foreach()替代for(). 5.销毁那些不用的变量尤其是大数组&#xff0c;如&#xff1a;unset().以便释放内存 6…

摄像机的几个重要的技术指标

(1)清晰度 清晰度是一个摄像机的最重要指标&#xff0c;在监控系统中对图像的清晰度有很高的要求&#xff0c;如在交通监控中,对车辆要能看清车牌号码&#xff0c;对行人要能看清脸部特征&#xff0c;如果这些都看不清楚&#xff0c;那么监控将失去意义。线数的多少决定着清晰度…

Docker容器入门-基本命令的使用

目前容器技术使用相当广泛 不会或者没有使用过容器感觉都不像是个搞技术的 所以&#xff0c;我也就docker相关内容做一个整理 只有不断的学习&#xff0c;才能保持自己的竞争力 什么是容器&#xff1f; 容器是一种轻量级、可移植、自包含的软件打包技术&#xff0c;使应用程序可…

卸载linux系统装win,如何在计算机上删除 Linux 并安装 Windows

多个 IDE 驱动器Device Boot Start End Blocks Id System/dev/hda1 * 1 500 4016218 83 Linux native (IDE hard drive 1, partition 1)/dev/hda2 501 522 176715 82 Linux swap (IDE hard drive 1, partition 2)/dev/hdb1 1 500 4016218 83 Linux native (IDE hard drive 2, p…

卡尔曼滤波— Constant Velocity Model

假设你开车进入隧道&#xff0c;GPS信号丢失&#xff0c;现在我们要确定汽车在隧道内的位置。汽车的绝对速度可以通过车轮转速计算得到&#xff0c;汽车朝向可以通过yaw rate sensor(A yaw-rate sensor is a gyroscopic device that measures a vehicle’s angular velocity ar…

优化实战:不要随便将字段折腾来折腾去的

到新公司先看了看数据库的性能&#xff0c;查看一个存储占用的CPU巨多&#xff0c;而且执行次数也特别多&#xff0c;打开一看&#xff1a;alterPROCEDURE[dbo].[IPLogInsert]IPchar(15) 255.255.255.255ASBEGINSETNOCOUNT ON; declarecurrIdintdeclaretodaydatetime--SET cur…

SQL SERVER 架构管理

架构特点&#xff1a; 架构是数据库级的安全对象&#xff0c;是数据库中表、视图、存储过程等对象的容器&#xff0c;是形成单个命名空间的数据库实体的集合&#xff0c;一个架构只能有一个拥有者。 将所有权与架构分离的意义&#xff1a; ①架构所有权和架构范围内的安全对象可…