如何让物体旋转到ps旋转指定角度度

3dmax如何把倾斜的物体变的垂直?没有按固定角度旋转的物体,要让它归于正常角度?该怎么做?
在什么视图里无意旋转错了,就进入那个视图,在3DMAX动画帧的下面,有一个“绝对模式变化输入”X,Y,Z,坐标栏里都键入0,观察每个视口是否正确,那个不正确就在那个视口调
为您推荐:
其他类似问题
扫描下载二维码用transform.Rotate()不行,这个方法只能自转。
之后又试了试transform.RotateRound()倒是可以,但是旋转完之后停不下来,用什么条件判断?
(而且Unity5.2.3显示transform.RotateRound()已经过时了,请问有其他的方法吗)
13:49:23 追加问题描述
就是不会写代码,才问的。插件好是好,不过我觉得还是自己写更好。
18:07:59 追加问题描述
旋转跳跃是什么意思?
您需要登录后才能查看回答!
1号核心群:
info@youke.proBox2d 设置物体旋转固定角度(不使用关节) - 推酷
Box2d 设置物体旋转固定角度(不使用关节)
16 十一月, 2012
本文为firedragonpzy原创,转载务必在明显处注明:
Softeware MyZone
】原文链接:&
最近一直在搞Box2d,不过box2d的资料还真是不多啊。研究物体旋转的时候可是遇到大问题了。现在精灵A,物体B和精灵b,精灵b是物体B的userData,后文中称之为B的皮肤。非物理世界我们均称之为场景,故事就这么展开了……
在场景中有不同的精灵,现在需要将场景中的精灵旋转后移动到物理世界中,物体B的皮肤要和精灵完全吻合。。。如何操作……
在处理b和物体重合的问题郁闷了好久,鉴于是Box2d的新手,可能实现的不好,大家多多见谅。主要是分享出来,大家不会的看看,会的多多指教,共同进步。
首先,首当其冲的问题就是,如果精灵A是多边形,移动到物理世界后与物理世界中的位置不匹配【我们为了使物体B和皮肤同时运动,位置完全吻合,肯定在update方法里面设置同一个position】,精灵A是正方形、长方形、圆形是没有问题的,多边形可就不如你意了。详细分析如下:正方形、圆形、长方形设置位置的时候是以中心点设置,而多边形是以左下角为基点设置。
好,发现问题了好说,解决啊!我在物体世界中通过程序将物体的位置进行了移动:代码如下:
if( this-&getTag() == kTagRoundItem || this-&getTag() == kTagSquareItem || this-&getTag() == kTagRectangleItem )
myParent-&triggerPhysics( this-&getPosition() );
CCPoint location = ccp( this-&getPosition().x - this-&getContentSize().width/2, this-&getPosition().y - this-&getContentSize().height/2 );
myParent-&triggerPhysics( location );
问题解决了,不错。。。
但是一旋转,问题又来了,物体B和皮肤又不能重合了。。。原因是发生角度偏移后,就不能减去&this-&getContentSize().width/2,这个需要通过复杂的计算。。。郁闷,,,郁闷、、、当然那些复杂的计算就不说了,主要说下解决方案。
无限次的运行,加上无数的思考后,我觉得通过角度计算太复杂了,是不是可以投机取巧啊。经过观察、分析平移与旋转,我发现物体B和皮肤发生偏移的距离就是锚点为(0,0)和(0.5,0.5)的时候,我通过ccpAdd(位置,ccpSub(位置1,位置2)),这么处理,进行一下精灵b位置的移动不就可以了嘛。于是设置this-&setAnchorPoint( ccp( 0,0 ) );取其世界坐标:convertToWorldSpace(this-&getAnchorPointInPoints());,郁闷的是结果和(0.5,0.5)的时候一致。。。
在绝望的时候,我抱着侥幸试了试convertToWorldSpaceAR(this-&getAnchorPointInPoints());竟然行了,兴奋啊,直接贴出实现代码,共享下:
if( this-&getTag() == kTagRoundItem || this-&getTag() == kTagSquareItem || this-&getTag() == kTagRectangleItem )
myParent-&triggerPhysics( this-&getPosition() , this-&getRotation());
CCLog( &angle point x %f&,this-&getAnchorPointInPoints().x );
CCLog( &angle point x %f&,this-&getAnchorPointInPoints().y );
CCLog( &0 0--%f&, this-&getPosition().x);
CCLog( &0 0--%f&, this-&getPosition().y);
this-&setAnchorPoint( ccp( 0,0 ) );
//CCPoint location = convertToWorldSpace(this-&getAnchorPointInPoints());
CCPoint locationOld = convertToWorldSpaceAR(this-&getAnchorPointInPoints());
CCLog( &angle point x %f&,this-&getAnchorPointInPoints().x );
CCLog( &angle point x %f&,this-&getAnchorPointInPoints().y );
CCLog( &0 0--%f&, locationOld.x);
CCLog( &0 0--%f&, locationOld.y);
this-&setAnchorPoint( ccp( 0.5,0.5 ) );
//location = convertToWorldSpace(this-&getAnchorPointInPoints());
locationOld = convertToWorldSpaceAR(this-&getAnchorPointInPoints());
CCLog( &angle point x %f&,this-&getAnchorPointInPoints().x );
CCLog( &angle point x %f&,this-&getAnchorPointInPoints().y );
CCLog( &0 0--%f&, locationOld.x);
CCLog( &0 0--%f&, locationOld.y);
CCPoint location = ccpAdd( this-&getPosition(), ccpSub( this-&getPosition(), locationOld ) );
myParent-&triggerPhysics( location , this-&getRotation());
不过貌似else里面只有一下代码也是ok的:
CCPoint locationOld = convertToWorldSpaceAR(this-&getAnchorPointInPoints());
CCLog( &angle point x %f&,this-&getAnchorPointInPoints().x );
CCLog( &angle point x %f&,this-&getAnchorPointInPoints().y );
CCLog( &0 0--%f&, locationOld.x);
CCLog( &0 0--%f&, locationOld.y);
CCPoint location = ccpAdd( this-&getPosition(), ccpSub( this-&getPosition(), locationOld ) );
myParent-&triggerPhysics( location , this-&getRotation());
期间对于一个新手来说遇到的一些小问题如下:
A:物体旋转:
m_groudBody-&SetTransform( m_groudBody-&GetPosition(), CC_DEGREES_TO_RADIANS(0) );//注意了,box2d中都是弧度,记得转化
B:时间间隔的处理,我用了动作,当然也可以使用时刻表,我试了试,效果不好
CCFiniteTimeAction *action = CCSequence::actions( CCCallFunc::actionWithTarget( this,callfunc_selector(HelloWorld::delayActionCallBackLeft) ),CCDelayTime::create( intervalSpace ),CCCallFunc::actionWithTarget( this,callfunc_selector(HelloWorld::delayActionCallBackMiddle) ),CCDelayTime::create( intervalSpace ),CCCallFunc::actionWithTarget( this,callfunc_selector(HelloWorld::delayActionCallBackRight) ),CCDelayTime::create( intervalSpace ),CCCallFunc::actionWithTarget( this,callfunc_selector(HelloWorld::delayActionCallBackMiddle) ),CCDelayTime::create( intervalSpace ),NULL );
m_groudSprite-&runAction( CCRepeat::actionWithAction( action, shockCounts ) );
C:物体挤压重叠,貌似是隧道效应。解决方案:
bodyDef.bullet =//开启子弹,随时监测碰撞,不过很好cpu,具体还没研究,待下回分解,了解的大神指点下
时间紧迫【项目急】,先大体写这些,实现功能,透彻的分析等待下回,如果哪位大神晓得,帮忙解释下,感谢万分……
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 2073|回复: 1
可视化路径插件iTween在Unity中的使用
72373/5000排名<font color="#FF昨日变化1主题帖子积分
日久生情, 积分 2373, 距离下一级还需 2627 积分
日久生情, 积分 2373, 距离下一级还需 2627 积分
蛮牛币1417
在线时间280 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
& & iTween它由一个c#文件组成,支持所有版本以及不管你用什么编程语言都可以使用它,如果你是用Js,你要将它放在Plugins文件夹里;如果是c#,放在项目的Assets里的任意目录即可。
& & 相关文章:iTween插件的介绍和用法
& & iTween的所有方法都有2种方式,一种简单的(simple),一种定制的复杂(customizable)的。 在复杂定制方式里可以设置iTween所有属性方法。iTween里的方法几乎都需要赋予一个GameObject,为了获取更大的性能,只有一些特定的 函数可以在Update方法中重复调用。
& & iTween可以做很多事情。我们先从简单的学起,先控制一个物体从一个位置移动到另一个地方,这里用到MoveTo()方法。让它两秒后移动到(2,0,0)位置上:
[AppleScript] 纯文本查看 复制代码 iTween.MoveTo(gameObject, Vector3(2,0,0), 3);
& & 上面是不是很简单?我们如果需要对这个动画进行更多的控制,我们需要用“customizable”模式,像下面这样写:
[AppleScript] 纯文本查看 复制代码 iTween.MoveTo(gameObject, {“x”:2, “time”:3, “loopType”:“pingPong”, “delay”:1));
& & 上面的意思就是三秒的时间将物体运动到x坐标为2的位置,运动的类型为“pingPong”,延时1秒执行这个运动。
& & 在C#中。你可能要这样写才可以:
[C#] 纯文本查看 复制代码  Hashtable parameters = new Hashtable();
  parameters.Add(“x”,2);
  parameters.Add(“time”,3);
  parameters.Add(“looptype”,iTween。LoopType。pingPong);
  parameters.Add(“delay”,1);
  iTween.MoveTo(gameObject, parameters);
& & 在Js中只要一行代码到C#中变成了六行,有点违背了最小投入最大产出的中心思想,但是,不要怕,iTween有一个解决方案,让C#中也可以像JavaScript那样简洁。
& & iTween里的hash()方法就可以做到,看下面修改后的代码:
[AppleScript] 纯文本查看 复制代码 iTween.MoveTo(gameObject, iTween。Hash(“x”,2,“time”,3,“loopType”,“pingPong”,“delay”,1));
& & 以下是iTween插件各方法的大致用法,每个方法都有简单传参和Hashtable定制两种用法,Hashtable可用iTween。Hash()生成,每个方法所需参数及其功能请参考iTween内部提示。
& & 常用方法简介:
& & AudioFrom:pitch和volum属性提供的是初始值
& & audioTo:&&pitch和volum属性提供的是终结值
& & audioUpdate:pitch和volum属性提供的是终结值 此方法用于Update()方法中
& & stab:播放AudioClip一次,不用手动加载AudioSource组件
& & CameraFadeAdd:创建一个对象可以模拟摄相机的淡入淡出。
& & CameraFadeSwap:改变摄相机的淡入淡出背景图(对象为CameraFadeAdd返回对象)
& & CameraFadeFrom:立即改变摄相淡入淡出的透明度然后随时间返回。amount:当执行淡入淡出时,其透明度的变化速度。(透明度越大,淡入淡出越快,个人认为100为满,如果速度较快,时间较长,渐变效果会在时间快要结束时出现。此方法配合CameraFadeAdd使用,只有在CameraFadeAdd前提下,才可以进行淡入淡出操作。此方法为从CameraFadeAdd返回的对象出淡出到原来的界面。
& & CameraFadeTo:随时间改变摄相机淡入淡出透明度,此方法为从本界面淡入到CameraFadeAdd返回的对象
& & ColorFrom:即刻改变对象的颜色值然后随着时间改变其回原来的颜色(总的来说,就是对GUIText和GUITexture的颜色的淡入淡出效果)。Color:此属性代表对象变化初始值。与audioFrom有异曲同工之效。
& & ColorTo:随着时间改变对象的颜色组。同上例一样。Color:此属性代表对象变化最终值,与audioTo有异曲同工之效
& & (注意,ColorFrom和ColorTo还有后面的ColorUpdate方法的NamedColorValue属性,有一些对象不具有NamedColorValue里的属性,运行时会有提示)
& & ColorUpdate:跟ColorTo类似,但花销的成本较少,此方法在Update方法中被调用
& & FadeFrom:即刻改变对象的的阿尔法值,然后随着时间将其阿尔法值变回原值。如果对象上有挂载a Light, GUIText or GUITexture这些组件,这些组件将成为被执行的对象。
& & 注:阿尔法值可以粗略理解为对象的透明度,值越小,透明度越大。这里的 alpha或者 amount 是变化初值
& & FadeTo:同上,alpha或amount是变化终值。
& & FadeUpdate :同FadeTo类似,在Update()方法中调用,提供时刻改变属性值的环境。不局限于 EaseType
& & LookFrom:即刻旋转物体让其看提供的Vector3或都Transfrom,然后随时间旋转回原来的角度值
& & 注:物体的脸部一般以本地坐标(即物体坐标)的Z轴,脸部朝向方法,即Z轴指向方法。
& & LookTo:随时间旋转物体让其脸部朝向所提供的Vector3或Transform位置。
& & LookUpdate:同LookTo类似,在Update()方法中调用。
& & MoveAdd:随时间改变游戏对象的位置(原理还有点蒙,感觉跟MoveBy有点像)amount:是改变物体位置的一个值,不是目标位置的坐标。
& & MoveBy:增加提供的坐标到游戏对象的位置
& & MoveFrom:立即改变游戏对象的位置为提供的,然后随时间改变游戏对象位置到初始位置
& & 属性:movetopath:Boolean值 ,是否自动将物体置于Ptah的起始点,默认值为真
& & Path:目标文件可用路径编缉器获得
& & PunchPosition:对物体的位置添加一个摇晃的力,使其摇晃最终归于原来的位置 其晃动大小和方法由提供的amount(Vector3)决定(方法由Vector3的x,y,z共同决定,晃动大小,由各个方法的值的大小决定)
& & PunchRotation:对物体的旋转添加一个摇晃的力,使其旋转最终归于初始值。其旋转角度大小和方向由提供的Vector3决定,建议用单轴而不是整个Vector3,例如(0,1,0)是绕Y轴旋转,角度大小由Vector3Y轴值大小决定
& & PunchScale:对物体的大小比例添加一个摇晃的力,使其大小比例变化最终归于初始值。其大小比例变
& & 化方向和大小由提供的Vector3决定。例如(0,1,0)是在Y轴方向对物体大小变化(即变化物体的高),大小由该方向的值大小决定。
& & PutOnPath :根据提供的百分比将游戏物体置于所提供路径上(1为百分之百)。
& & PointOnPath:根据提供的百分比返回一条路径上的Vector3的位置
& & RectUpdate:返回一个RECT在提供的两个值之间,大小变化根据提供的速度
& & Vector3Update:返回一个Vector3在提供的两个值之间,大小变化根据提供的速度
& & Vector2Update:返回一个Vector3在提供的两个值之间,大小变化根据提供的速度
& & FloatUpdate:返回一个float在提供的两个值之间,大小变化根据提供的速度
& & RotateAdd:对游戏物体的旋转角度随着时间增加所提供的欧拉角(顺时针旋转。Vector3三个值解析:
& & X,Y,Z各代表围绕哪个轴转动。其转动角度就是X,Y,Z、的值的大小。amount:欧拉角大小)
& & RotateBy:把提供的值乘以360,然后随着时间旋转游戏物体的角度按计算得的值。例 如(0,1,0)就是绕Y轴旋转360度, 顺时针旋转。
& & RotateFrom:立即改变游戏物体角度的欧拉角,然后随着时间旋转回原来的角度,属性提供的欧拉角为变化初始值
& & RotateTo:旋转游戏物体角度到我们所提供的欧拉角角度。属性提供的欧拉角为变化终结值
& & RotateUpdate:跟RotateTo类似,该方法在Update中被调用,提供一个可改变属性值的环境。不用局限EaseType
& & ScaleAdd:随着时间根据提供的amount(Vector3)增加游戏物体的大小
& & ScaleBy:随着时间变形游戏物体,游戏物体最终变形大小由我们提供的amount(Vector3)值决定 算法:终变形大小=游戏物体初始的sacle * 我们提供的 amount值
& & ScaleFrom:立即改变游戏物体的比例大小,然后随时间返回游戏物体原本的大小。amount:为物体变形的初始大小
& & ScaleTo:随着时间改变物体的比例大小到我们提供的Scale大小(scale值)
& & ScaleUpdate:跟ScaleTo类似,此方法用于Update中,提供可改变属性值的环境 ,不用局限于EaeType
& & ShakePosition:根据提供的amount衰减其值随机摇动游戏物体的位置,其晃动大小和方向由提供的amount(Vector3)决定(方向根据Vector3随机,晃动大小,由各个方向的值的大小决定)
& & ShakeRotation:根据提供的amount衰减其值随机摆动旋转游戏物体的角度 。Vector3三个值解析:X,Y,Z各代表围绕哪个轴旋转。其转动角度就是X,Y,Z、的值的大小
& & ShakeScale:根据提供的amount衰减其值随机摆动改变游戏物体的大小。其大小比例变化方向和大小由提供的Vector3决定。例如(0,1,0)是在Y轴方向对物体大小变化(即变化物体的高),大小由该方向的值大小决定
& & Pause:停止iTween 如果一个iTween以ignoreTimeScale定制且设为True停止工作。 参考不同参数Pause的说明。
& & Stop:停止iTweens,和Pause一样,不同的参数有不同作用。
& & Stop By Name:停止指定名字的iTween
& & ValueTo:返回一个插值在两件值之间的回调函数的值
itween 2.07;itween.unity 改变物体大小;itween moveto 位置更新;playmaker获取物体的屏幕坐标;unity3unity itween 完整包;itween路径动画;unity旋转到指定角度;itween教程;unity a 插件;unity itween的使用;unity itween插件;unity归一化;unity弹出 路径;unity 4unity 物体朝向某;用过;unity行为 插件;unity好用的插件;unity插件怎么用;unity你用过哪些插件;插件unity 云 插件;unity如何使用插件;unity 插件使用;unity插件怎么使用;unity有哪些插件;unity中unity itween的变大;unity itween插件使用;unity插件unity 最小化;unity 路径移动;unity 相对路径;unity 路径;unity 移动路径;unity 本地路径;unity 绝对路径;unity 5unity 物体朝向;unity 得到物体的朝向;unity 朝向物体;unity 相机旋转移动;unity 插值移动;unity编程语言;unity中的回调函数;unity都有哪些常用插件;unity里面常用插件;unity常用的插件;uunity 每秒执行一次;unity每两秒执行一次;unity停止工作;unity 物体绕自身旋转;unity物体绕某点旋转;unity 游戏结束;unity物体是否在相机前;unity插件不执行;unity中延时;unity设置语言;unity常用函数c#;unity 设置物体速度;unity 动画停止;unity 绕某点旋转;unity控制物体移动unity 旋转指定角度;unity加载动画;unity 如何添加背景图;unity guitexture 4.6;unity 函数c;unity 围绕旋转
每日推荐:
270/150排名<font color="#FF昨日变化2主题帖子积分
初来乍到, 积分 70, 距离下一级还需 80 积分
初来乍到, 积分 70, 距离下一级还需 80 积分
在线时间20 小时
学习学习 !!!
每日推荐:
游戏蛮牛QQ群会员
加入游戏蛮牛官方QQ群
社区QQ达人
使用QQ帐号登录论坛的用户

我要回帖

更多关于 cad旋转指定角度 的文章

 

随机推荐