Unity 3D 开发 —— 脚本编程
Unity 相关资源
Unity 官网 :http://www.unity3D.com
Unity 论坛 : http://forum.unity3d.com/forum.php
Unity 问答 :http://answers.unity3d.com/index.html
Unity 博客 :http://blogs.unity3d.com
Unity 官方在线案例 : http://unity3d.com/gallery/demos/live-demos
Unity 官方项目源文件 : http://unity3d.com/gallery/made-with-unity/game-list
Unity 在线课堂 : http://unity3d.com/learn/live-training
Unity 在线教程 :http://unity3d.com/learn/tutorials/modules
Unity 用户手册 :http://docs.untiy3d.com/Documentation/Menual/index.html
Unity 组件参考手册 :http://docs.unity3d.com/Documentation/Components/index.html
Unity 脚本手册 : http://doc.unity3d.com/Documentation/ScriptReference/index.html
Digital – Tutors 的Unity 系列教程: http://www.digitaltutors.com/software/Unity-tutorials
Lynda 出品的Unity教程 : http://www.lynda.com/Unity-D-training-tutorials/1243-0.html
Unity 向量
Vector3 成员变量
x
y
z
normalized 单位化(只读)
magnitude 向量长度
sqrMagnitude 向量长度的平方
Vector3 常用方法
Cross 叉乘
Dot 点乘
Project 计算向量在另一个向量上的夹角
Angel 返回2个向量之间夹角
Distance 返回2个向量之间距离
operator +
operator -
operator * 向量乘标量
operator / 向量除标量
operator ==
operator !=
矩阵 Matrix4X4
在Unity中,Matrix4x4 仅在Transform ,Camera, Material 和 GL 等几个类的函数中用到
齐次坐标 —— 将原本3维的向量 (x,y,z) 用4维向量 (wx,wy,wz,w)
引入目的 —— 更好的区分向量和点,使用 (x,y,z,1)表示坐标点 , 使用 (x,y,z,0)表示向量;同一用矩阵乘法表示平移,旋转,缩放变换;w=0表示无穷远的点
四元数 —— 包含一个标量分量和一个三维向量分量 Q=[w,(x,y,z)]
在3D数学中使用单位四元数表示旋转
Quatenion 类 来表示四元数 :
成员变量 —— x,y,z,w,this[int index] , eulerAngles(返回表示该旋转的欧拉角)
函数 —— Set , ToAngleAxis(将四元数转换成一个角-轴表示的旋转),SetFromToRotation (设置一个四元数表示fromDirection到toDirection的旋转)
SetLookRotation (设置一个四元数表示朝向为forward,上方向为up的旋转) ToString
operator * (连接两个旋转,作用相当于依次应用两个旋转操作)
operator == operator !=
Dot (两个旋转点乘) AngleAxis (根据旋转角和旋转轴创建一个四元数)
FromToRotation (生成一个四元数表示 fromDirection 到 头Direction 的旋转)
LookRotation (生成一个四元数表示朝向为forward 上方向为up的旋转)
Slerp 根据t值在四元数from和to之间进行球形插值
Lerp 根据t值在四元数from 和 to之间进行插值,并将结果规范化
RotateTowards 将选择from变换旋转to
Inverse 返回旋转的逆
Angle 返回a和b两个旋转之间的夹角角度
Euler 返回一个先沿z轴旋转z角度,然后沿x轴旋转x角度,y轴旋转y角度的旋转
在游戏对象的Transform组件中,变量Transform.rotation 为对象在世界坐标系下的旋转
Transform.localRotation 为对象在父对象的局部坐标系下的旋转,两个变量的类型均为四元数
var from : Transform;
var to :Transform;
var tranTime = 10.0 ; // 相机观察方向从a过渡到b所需的时间,单位秒
private var startTime : float; fuction Start()
{
startTime = Time.time;
}
functionUpdate ()
{
var fracComplete = (Time.time - startTime)/tranTime; // 计算用于插值的系数
transform.rotation = Quaternion.Slerp(from.rotation,to.rotation,fracComplete); // 平均插值
}
坐标系
世界坐标系 —— 全局坐标系
局部坐标系 —— 每个物体的独立物体坐标系,并且随物体进行相同的移动或者旋转
相机坐标系 —— 根据观察位置和方向建立的坐标系,使用坐标系可以方便地判断物体是否在相机前方以及物体之间的先后遮挡顺序
屏幕坐标系 —— 建立在屏幕上的二维坐标系,用于描述像素在屏幕上的位置
Transform 组件的 Transform.TransformPoint 方法可以将坐标点从局部坐标系转换到世界坐标系
Transform.InverseTransformPoint 从世界坐标转换到自身坐标
Transform.TransformDirection 对向量在物体坐标系和世界坐标系之间进行转换
Transform.InverseTransformDirection
Unity 3D 开发 —— 脚本编程的更多相关文章
- unity 3d开发的大型网络游戏
unity 3d开发的大型网络游戏 一.总结 1.unity的官网上面应该有游戏列表 2.unity3D是很好的3d游戏引擎,也支持2d,也能做很多画面精良的3A级游戏 3.范围:电脑游戏,手机游戏, ...
- 使用 Unity 3D 开发游戏的架构设计难点
Unity 3D 引擎对于开发者来说,入手非常快,因为它采用的是 C# 作为开发语言,这也大大降低了开发者的门槛.但凡只要懂一门编程语言的人都能使用 Unity 3D 引擎开发,另外 Unity 3D ...
- Unity 3D开发-C#脚本语言的一些基础用法
Unity 中C#语言的一些基础用法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Lerp -- 线 ...
- [Unity 3D] Unity 3D 性能优化 (一)
听到过很多用Unity 3D开发游戏的程序员抱怨引擎效率太低,资源占用太高,包括我自己在以往项目的开发中也头疼过.最近终于有了空闲,可以仔细的研究一下该如何优化Unity 3D下的游戏性能.其实国外有 ...
- Unity 3d 脚本常用事件
1.学习笔记,每天晚上看看unity 3d 的教程 学点东西,先上一张图 这是 系统中脚本执行的顺序图 Awake()在MonoBehavior创建后就立刻调用,在脚本实例的整个生命周期中,Awake ...
- Unity 3D 建立开发环境
之后的基本方向 ios游戏开发,基础教程http://www.devdiv.com/unity_d_-thread-128068-1-1.html,学习Unity 3D游戏开发. 应该昨天表示,读了一 ...
- Unity 3D游戏开发学习路线(方法篇)
Unity 3D本来是由德国的一些苹果粉丝开发的一款游戏引擎,一直只能用于Mac平台,所以一直不被业外人士所知晓.但是后来也推出了2.5版,同时发布了PC版本,并将其发布方向拓展到手持移动设备.Uni ...
- 【Unity】1.0 第1章 Unity—3D游戏开发和虚拟现实应用开发的首选
分类:Unity.C#.VS2015 创建日期:2016-03-23 一.简介 Unity是跨平台2D.3D游戏和虚拟现实高级应用程序的专业开发引擎,是由Unity Technologies公司研制的 ...
- Unity 3d C#和Javascript脚本互相调用 解决方案(非原创、整理资料,并经过实践得来)
Unity 3d C#和Javascript脚本互相调用 解决方案 1.背景知识 脚本的编译过程分四步: 1. 编译所有 ”Standard Assets”, “Pro Standard Assets ...
随机推荐
- rem自适应布局-移动端自适应必备:flexible.js
http://caibaojian.com/flexible-js.html
- ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(上)
前言 在上篇文章中,详细分析了RACSignal是创建和订阅的详细过程.看到底层源码实现后,就能发现,ReactiveCocoa这个FRP的库,实现响应式(RP)是用Block闭包来实现的,而并不是用 ...
- 大数问题(相加) A + B
I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum o ...
- MVC-easyui-EF
easyui+jQuery+MVC+EF的一个演示 环境:visual studio 2013+sql server 创建新项目:visual C# -> Web -> visual st ...
- cmder-替代cmd
之所以选择cmder,说来话长,在学习python的过程中,由于经常通过pip命令安装包,并且在学习一些包的使用例如virtualenv,教程贴都是在终端下的命令,这使我对cmd的使用频率慢慢变多了起 ...
- 作诗(si)[分块]
题目描述 神犇SJY虐完HEOI之后给傻×LYD出了一题: SHY是T国的公主,平时的一大爱好是作诗. 由于时间紧迫,SHY作完诗之后还要虐OI,于是SHY找来一篇长度为N的文章,阅读M次,每次只阅读 ...
- 137 - ZOJ Monthly, November 2014 - J Poker Face
Poker Face Time Limit: 2 Seconds Memory Limit: 65536 KB As is known to all, coders are lack of ...
- 一个最不可思议的MySQL死锁分析
1 死锁问题背景 1 1.1 一个不可思议的死锁 1 1.1.1 初步分析 3 1.2 如何阅读死锁日志 3 2 死锁原因深入剖析 4 2. ...
- codevs——T2806 红与黑
http://codevs.cn/problem/2806/ 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 白银 Silver 题解 题目描述 Descriptio ...
- jquery 表单重置通用方法
$("#form_id").find(":input").not(":button,:submit,:reset,:hidden").val ...