时间:2016年9月24日17:38:21  

作者:yexiaopeng 博客园

 

  在unity3d的世界中,其坐标系可分为四种,世界坐标系-WorldSpace   本地坐标系-LocalSpace  屏幕坐标系-ScreenSpace 视口坐标-ViewPortSpace。其中作者本人当前面对的是世界坐标系和本地坐标系的问题。本文讲诉这两个坐标系对物体运动的影响,其他的坐标系涉及到再做说明。

   在学习unity3d官方例子(太空大战)的过程中,编写脚本对陨石的运动进行控制时发现旋转的陨石无法进行直线运动。其中,对陨石做直线运动的控制脚本语句为:

 void Update () {
transform.Translate(Vector3.back * Time.deltaTime * speedMove);
}

运行后发现陨石的运动方向是混乱的,检查后发现原因为:为了使陨石的效果逼真而加入了的陨石旋转的效果,但在旋转的过程中,陨石的本地坐标系是变化的。

而控制脚本直线运动的函数使用的时本地坐标系(transform.Translate 在输入参数缺省情况下,默认使用本地坐标系),以此造成陨石“乱飞”的现象。

 

解决方式:使用世界坐标系控制陨石的直线运动,修改代码如下

 void Update () {
transform.Translate(Vector3.back * Time.deltaTime * speedMove, Space.World);
}

其中 Space.World表示使用世界坐标系,而使用Space.Self或是缺省时,表示依照本地坐标系运动。

 

【unity3d游戏开发脚本笔记之一:坐标系选择对物体运动的影响】的更多相关文章

  1. 从一点儿不会开始——Unity3D游戏开发学习(一)

    一些废话 我是一个windows phone.windows 8的忠实粉丝,也是一个开发者,开发数个windows phone应用和两个windows 8应用.对开发游戏一直抱有强烈兴趣和愿望,但奈何 ...

  2. [Unity3D]Unity3D游戏开发3D选择场景中的对象,并显示轮廓效果强化版

    大家好,我是秦培,欢迎关注我的博客,我的博客地址blog.csdn.net/qinyuanpei. 在上一篇文章中,我们通过自己定义着色器实现了一个简单的在3D游戏中选取.显示物体轮廓的实例. 在文章 ...

  3. [Unity3D]Unity3D游戏开发之伤害数值显示

    大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.众所周知,在RPG游戏策划中最为重要的一个环节是数值策划.数值策划是一个关于游戏平衡方面的概念 ...

  4. Unity3D游戏开发初探—2.初步了解3D模型基础

    一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被. ...

  5. Unity3D游戏开发从零单排(四) - 制作一个iOS游戏

    提要 此篇是一个国外教程的翻译,尽管有点老,可是适合新手入门. 自己去写代码.debug,布置场景,能够收获到非常多.游戏邦上已经有前面两部分的译文,这里翻译的是游戏的最后一个部分. 欢迎回来 在第一 ...

  6. [Unity3D]Unity3D游戏开发《反对》说到游戏(上)——目标跟踪

    朋友,大家好.我是秦培,欢迎关注我的博客.我的博客地址blog.csdn.net/qinyuanpei. 首先博主要自我反省,过了这么久才来更新博客,这段时间主要是在忙着写期末的作业,所以博主基本上没 ...

  7. [Unity3D]Unity3D游戏开发之跑酷游戏项目解说

    大家好,我是秦元培.我參加了CSDN2014博客之星的评选,欢迎大家为我投票,同一时候希望在新的一年里大家能继续支持我的博客. 大家晚上好.我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.c ...

  8. 内置3D对象-Unity3D游戏开发培训

    内置3D对象-Unity3D游戏开发培训 作者:Jesai 2018-02-12 19:21:58 五大面板: -Hierachy:当前场景中的物体 图 1-1 -Project:项目中的所有资源 图 ...

  9. Unity3D游戏开发培训

    Unity3D游戏开发培训 作者:Jesai 时间:2017-01-08 修改:2017-01-09 12:36:15 1         项目的构成 图1-1 如图1-1所示,Unity3D的项目构 ...

随机推荐

  1. Daily Scrum02 12.09

    今天星期一,各们课程要结课了,同时也是众多大作业要提交的时间, 但是我们仍然要继续坚持! 引用拿破仑将军的一句话, 最困难之日便是离成功不远之时! Member 任务进度 下一步工作 吴文会 寻找美术 ...

  2. Oracle数据库坏块的恢复

    模拟数据块坏块: 对于发生数据块不一致的数据块,如果当前数据库有备份且处于归档模式,那么就可以利用rman工具数据块恢复功能 对数据块进行恢复,这种方法最简单有效,而且可以在数据文件在线时进行,不会发 ...

  3. #20145205 《Java程序设计》第3周学习总结

    教材学习内容总结 1.java中的浮点数具体是由分数进行表示的,所以在有些时候,看起来很简单的基本运算,运行结果会让人很是不理解,原因是分数有时表示浮点数时无法完全恰好表示,可能会出现无限循环的情况. ...

  4. 2016.9.20 java上课作业

    此程序从命令行接收多个数字,求和之后输出

  5. C# 方法返回值的个数

    方法返回值类型总的来说分为值类型,引用类型,Void 有些方法显示的标出返回值 public int Add(int a,int b) { return a+b; } 有些方法隐式的返回返回值,我们可 ...

  6. mysql优化杂记

    一.mysqladmin的使用#mysqladmin extended-status -u root -i 2 -c 2 -p | grep connect查看mysql的状态中带有connect字符 ...

  7. http请求,普通的get和post方法

    在http://www.cnblogs.com/ITtangtang/p/3968093.html的基础上封装了一下get和post请求的常用方法, 虽然很简单,也晒晒 import org.apac ...

  8. GET,POST — 简述

    本文主要对GET与POST基本区别进行汇总并掌握,如有错误与遗漏之处,请指出. 文章出处:http://www.cnblogs.com/useryangtao/ 1. HTTP HTTP(即超文本传输 ...

  9. css基础知识

    CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明.其中选择器通常是您需要改变样式的 HTML 元素(比如p标签),也可以是节点的属性的值(比如id,class):每条声明都是一条字典key ...

  10. oracle 解锁

    解决方法如下: 1:查V$DB_OBJECT_CACHE SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CRM_LASTCHGINFO_DAY' AND LO ...