今天做demo时遇到一个问题:当使用角色控制器操作物体,用 controller.SimpleMove(transform .forward); 语句时物体不能移动,搜索请教了很久,最后终于google到了问题的根本原因.参见unity3d问答.       I suspect you may have some object with a collider childed to your character - the charactercontroller behaves weirdly w…
记录在学习<Unity 3.x 游戏开发 经典教材>时遇到的各种问题与笔记 1. 初始不能降低Terrain的高度,需要到Terrain设置的第二个按钮中将Height从0调高 (注意:最右边齿轮按钮里的Terrain Height是整个地形的最大高度,左图是当前笔刷绘制的最大高度)     2. SendMessage() 可以直接调用物体中的一个函数,而不在乎函数属于哪个脚本 // ① 书中P151 currentDoor.SendMessage("DoorCheck"…
在Unity中有两个forward,一个是Transform.forward一个是Vector3.forward. 对于Vector3来说,它只是缩写.没有其它任何含义. Vector3.forward ,(0,0,1)的缩写.//在transform.Translate()中使用时,如果不表明坐标系,则为物体的局部坐标,即物体自身的正前方. Vector3.right, (1,0,0)的缩写. Vector3.up , (0,1,0)的缩写. 对于Transform.forward来说,它代表…
在Unity中有两个forward,一个是Transform.forward一个是Vector3.forward. 对于Vector3来说,它只是缩写.没有其它任何含义. Vector3.forward ,(0,0,1)的缩写.//在transform.Translate()中使用时,如果不表明坐标系,则为物体的局部坐标,即物体自身的正前方. Vector3.right, (1,0,0)的缩写. Vector3.up , (0,1,0)的缩写. 对于Transform.forward来说,它代表…
http://blog.163.com/bowen_tong/blog/static/20681717420146654927791/ vector3.forward和transform.forward的区别. vector3.forward的值永远等于(0,0,1). transform.forward的值则等于当前物体的自身坐标系z轴在世界坐标上指向,因此不一定等于(0,0,1),但是其magnitude长度是1.…
unity Character Controller  点滴 1.今天在做角色的时候,发现人物跳不起来,原来设置这个属性即可,Step Offset, 这个是台阶的高度,这个值设置的越大,人物爬的越高! 2.发现有时候碰到障碍物的时候,人物会绕着走,那么设置Skin Width即可!一般为0.3即可!…
原文连接: http://blog.csdn.net/kaluluosi111/article/details/17206655 在unity3d中有2个forward,一个是vector3.forward和transform.forward,这两个forward其实完全不一样.他们之间的区别主要体现在在不同坐标系时的反映上. 我们分别对比一下 vector3和transform两个向量的forward 在 self自身坐标系 和 world世界坐标系 中的表现,我们用transform.tra…
Vector3.forward的值永远是(0,0,1)(这里的(0,0,1)是世界坐标的(0,0,1)),而transform.forward我们可以理解为其对应物体的z轴方向,是一个向量,而不是一个坐标,但是我们应当把它看成世界坐标系内的,而不是局部坐标系内的 1.transform.position+= vector3.forward 等于是在世界坐标的z轴前进. 2.transform.position+=transform.forward 等于是物体自身坐标系的z轴前进. 3.trans…
[Unity Shader笔记]渲染路径--Forward渲染路径 (2014-04-22 20:08:25) 转载▼ 标签: shader unity renderingpath forward 游戏 分类: UnityShader *ForwardBase.ForwardAdd的LightMode只能运行在Came为Forward.DeferredLighting的渲染模式下 *ForwardAdd这个Pass需要和ForwardBase一起使用,否则会被Unity忽视掉 * Forward…
1. 给角色加角色控制器组件,然后用以下代码可以控制角色移动和跳跃 float speed = 6.0f; float jumpSpeed = 8.0f; float gravity = 20.0f; private Vector3 moveDirection = Vector3.zero; void Start() { // gameObject.rigidbody = false; } void Update() { CharacterController controller = GetC…
1. 摄像机预览物体 上下左右远近 把CameraFollow脚本赋给Camera,把要观察的对象赋给target using UnityEngine; using System.Collections; public class CameraFollow : MonoBehaviour { public Transform target; public float targetHeight; public float distance; public int maxDistance; publ…
SendMessage() 调用其他物体中的指令,先在脚本中编写一个自定义的函数,然后使用SendMessage()命令来调用那个物体上的命令 //①将以下函数附给target对象 void Renamer(string newName) { gameObject.name=newName; } //②在其他脚本上调用这个函数 GameObject.Find("target").SendMessage("Renamer","target_down"…
由于本人英文较烂,边翻译用户手册边学习. 用户手册  IK Components Final IK 包含许多强大高速的IK组件 Aim  AimIK solver是一个对CCD算法(cyclic coordinate decent循环坐标下降算法)的修正,通过旋转骨骼的层次结构,确定瞄准目标后子骨骼的Transform. 它不同于内置Animator的 SetLookAtPosition 和 LookAtIK 功能,因为它能对不一致的层级主轴进行精确的目标转换.(because it is ab…
1.协程,即协作式程序,其思想是,一系列互相依赖的协程间依次使用CPU,每次只有一个协程工作,而其他协程处于休眠状态. unity中StartCoroutine()就是协程,协程实际上是在一个线程中,只不过每个协程对CUP进行分时,StartCoroutine()可以访问和使用unity的所有方法和component 2.Thread,多线程是阻塞式的,每个IO都必须开启一个新的线程,但是对于多CPU的系统应该使用thread,尤其是有大量数据运算的时刻,但是IO密集型就不适合:而且thread…
1. 发布网页版Unity自适应网页大小 发布网页版,Unity3D自适应网页大小.这个问题困扰了我很长时间,今天终于把他解决了,给大家分享一下. 这里用Uinty4.0发布网页版,我去掉了里面的标题和下载连接地址的Div,目的是让代码看起来易懂. 自适应网页大小与发布网页时PlayerSettings设置的width和height大小无关,只要讲网页里面的标注的代码设置好,就可以实现u3d自适应网页大小. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML…
1. 在Unity中调试可行,发布成exe可行,发布成web不行 Application.dataPath 在Unity中调试是在“..Assets”文件夹下, 发布成exe文件是在“..yourName_Data”文件夹下 using UnityEngine; using System.Collections; using System.Xml; public class CallXml { //XML文件路径 在Unity中调试 public static string localUrl =…
1. 给角色添加一个Animator组件和New State,运行后,摆出这种奇怪的姿势 这是因为没有把动画片段赋给New State,可以看到此时的New State为空,把Idle片段拖进去就好了 2. 添加一个WalkBack状态后运行,角色会自动往后走.这是因为Make Transition的Contidions设置反了. Idle → Walk 时Speed (Vertical的值) 应该 Less than -0.1,反之Greater than -0.1 3. 添加了同时拥有Wal…
以前一直以为在Inspector面板上的是Transform,后来才发现原来2D是RectTransform,3D是Transform 3D面板上显示的是位置坐标组件Transform,2D面板上显示的是位置坐标组件RectTransform RectTransform是Transform的子类 可以这样强制转换,反过来则不行 RectTransform r_trans = (RectTransform)this.transform;…
transform.Find(""); 找到子游戏对象,找自己找不到,能找到未激活的子游戏对象. 括号里可以是游戏对象的名字,也可以是层级. GameObject.Find("") 找Hierarchy面板下的游戏对象,未激活的找不到. 括号里可以是游戏对象的名字,也可以是层级.…
资源源于:小意思VR 唉..可怜一下自己,这个问题百度google也不知道怎么搜,没搜出来,在群里问出来的. 当时感觉自己Unity有问题..(就是因为自己啥也不会看不懂) 按右键.或者WASD视角都不移动 贴出来造福有需要的网民 按Alt键+右键(相当于摇头) 和Ctrl键+右键  (转头切换视角)就好了…
1. 连接外置摄像头 2. Unity3D中调用外接摄像头,并保存为图片文件…
1. 射线用 Physics.Raycast 都可以判断,用 collider.Raycast 只在某些(不明)情况下可以 void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; // if (collider.Raycast(ray, out hit, 100f)) if (Physics.Raycast(ray,out hit ,100f)) { Debug.Dr…
角色已经人形化(Humanoid)了,那它的动画可以用在其它的模型上了也就是可以共用一套模型动画了,但是你有没有发现那动画是和fbx模型绑在一起的,没关系你可以选中这几个动画文件按Contrl+D就可以提取出来了,然后你可以把整个fbx模型都删掉了,新生成的动画已经不再基于fbx了,这样可以大大减小资源大小. 如果是一个程序员的话你可能会想那这个实现代码是怎样的呢 using UnityEngine; using UnityEditor; using System.Collections; us…
1. Time.deltaTime 增量时间 以秒计算,完成最后一帧的时间(秒)(只读) 帧数所用的时间不是你能控制的.每一帧都不一样,游戏一般都是每秒60帧,也就是updata方法调用60次(假如你按60帧来算 而真实情况是不到60帧 那么物体就不会运动到你所想要的位置),但是真实情况是一般都达不到60帧 如果你还按60帧那样设定你的物体运动的话,动作会不连贯.所以用deltatime只是用上一帧所花的时间来当做这一帧用的时间,因为没人知道你这一帧会用多长时间.体会下,多打打代码 看看效果 慢…
1. 网上很多方法都说用时间种子来解决,但是在极短的时间内,这种方法没效 Random r = new Random(DateTime.Now.Millisecond); Random Counter = new Random(unchecked((int)(DateTime.Now.Ticks >> ctr))); Random Counter = new Random(System.Guid.NewGuid().GetHashCode()); 2. 用Random结合Hashtable才完…
1. 材质定义: 2. 把材质都改成支持透明通道 因为物体太多了,比如树跟房子材质必须用不一样的.所以办法还是你得改每个材质的Shader,都改成支持透明通道的. 在Project的搜索窗口输入t: material 然后材质就都出来了. 然后全部选定,把shader 改成Particle/Alpha blended,全选改不了是因为你全选的材质里面存在着用不同shader的材质…
1. 遇到的问题 从xml读数据,xml的编码用中文就会乱码,改编码格式就调用不了.目前采用默认的ANSI编码. .exe    .txt  .xlsx  .xml  .test Run     √ (路径不能带空格)   √      √      √       √ (.test要有关联的默认打开方式如记事本) Exec    √                          ×      ×      ×       × Run  不能直接打开带有空格的路径,如果带有空格,我给路径加一…
1. 鼠标双击 void OnGUI() { Event Mouse = Event.current; if (Mouse.isMouse && Mouse.type == EventType.MouseDown && Mouse.clickCount == 2) { // 调用你的函数 print("Double Click"); } }…
HUD Mozilla  Mozilla基金会,简称Mozilla(缩写MF或MoFo),是为支持和领导开源的Mozilla项目而设立的一个非营利组织. 称作Mozilla公司的子公司,雇佣了一些Mozilla开发人员并协调Mozilla Firefox网页浏览器.…
1. 原始效果  (tip:在4.x的书中有介绍) 2. 打开.html文件原始代码如下 <script type='text/javascript' src='jquery.min.js'></script> <script type="text/javascript"> <!-- var unityObjectUrl = "UnityObject2.js"; if (document.location.protocol…