1. Unity3D如何模拟弹力
有几种方式可以做到
采用Dotween或者Itween这种缓动插件来做,在其中可以设置路径点,然后根据路径点移动。相对来说比较简单
通过代码实现, 根据初中的物理知识(应该是初中的)抛物线运动在水平方向是匀速的,垂直方向上是v=a*t(v是速度,a是加速度,t是时间).也就是说只要得到垂直方向初始化速度,让水平方向和垂直方向各自运行就可以了.
如果知道目标(距离)和水平速度,就能得到飞行的时间.time=distance/speed; 在time这段时间内,炮弹用1/2的时间上升,1/2的时间下降.炮弹发出时在垂直方向上的速度是多少呢?我们可以反过来看,在最顶点时炮弹速度是0,经过1/2的时间下落到平面,根据v=a*t(也就是speed=重力加速度*1/2*时间),这样就得到了垂直方向的初始化速度.然后用逻辑控制垂直方向和水平方向各自运行就可以了.
大致写了一段逻辑如下:
publicclassBullet:MonoBehaviour创建一个A物体用来移动,B物体是终止点。然后挂脚本运行即可。
{
publicconstfloatg=9.8f;
publicGameObjecttarget;
publicfloatspeed=10;
privatefloatverticalSpeed;
privateVector3moveDirection;
privatefloatangleSpeed;
privatefloatangle;
voidStart()
{
floattmepDistance=Vector3.Distance(transform.position,target.transform.position);
floattempTime=tmepDistance/speed;
floatriseTime,downTime;
riseTime=downTime=tempTime/2;
verticalSpeed=g*riseTime;
transform.LookAt(target.transform.position);
floattempTan=verticalSpeed/speed;
doublehu=Math.Atan(tempTan);
angle=(float)(180/Math.PI*hu);
transform.eulerAngles=newVector3(-angle,transform.eulerAngles.y,transform.eulerAngles.z);
angleSpeed=angle/riseTime;
moveDirection=target.transform.position-transform.position;
}
privatefloattime;
voidUpdate()
{
if(transform.position.y<target.transform.position.y)
{
//finish
return;
}
time+=Time.deltaTime;
floattest=verticalSpeed-g*time;
transform.Translate(moveDirection.normalized*speed*Time.deltaTime,Space.World);
transform.Translate(Vector3.up*test*Time.deltaTime,Space.World);
floattestAngle=-angle+angleSpeed*time;
transform.eulerAngles=newVector3(testAngle,transform.eulerAngles.y,transform.eulerAngles.z);
}
}
2. Unity3D导入外部模型没有物理效果
碰撞体是否勾选了Is Trigger,如果任一碰撞体勾选了,那么就会穿过。
3. unity3d引擎是如何来驱动三维模型,最终生成仿真系统的
首先,要在模型里拖进去Assembly(就是平面库里第一个那个圆形)。 建模注意:你的机构构件的连接点数以跟其它构件连接点数为准,可以多,但是不能少。多的可以加 zero force source 填上占位。 铰接点无驱动时用 pivot junction 有驱动用 pilot pivot junction。 平动副用 translation junction、pilot translation junction,如果用jack可以直接代表油缸加两端的铰接点。 构件参数设置时最好以构件坐标原点(X,Y)=(0,0)为一个铰接点向外推,多出铰接点的空位可以用zero force source 填上占位并设置数值来标识构件的轮廓外形。 三维模型的导入,要在参数设置模式下双击Assembly图标进入三维显示界面。并在三维显示界面导入。导入格式有几种,我为了跟SimulationX通用一般用STL格式。STL可以用三维制图软件导出,导出时最好将输出坐标原点设置在铰接点处,这样在模型里调整时方便。 导入命令在三维显示模式的creat->3D model中选取。导入时要先在object树中点击选取三维模型要关联的构件。object树在三维显示界面的最左边那排按钮右侧紧贴着一个左右拉动的框,向右拉就可以看到object树了。跟在proe里那种显示方法一样。点选树中的构件并有显示选中后再导入模型就可以关联了,不然导入的三维模型会在总树下面,不会跟任何构件运动,成了仿真的背景图像。导入的三维模型不一定能够跟构件的角度、方向吻合,可以在object树中设置转动方向、角度、颜色等等。 最后,AMEsim对构件的计算支持并不好,加了构件的液压模型计算经常报错。效率并不高。曾经有Adams联合仿真的模型,去掉接口用平面机构库建模。原来联仿只要2+小时的计算最后花了29小时+,而且最大的缺点是只能做平面机构。相比而言如果想在一个软件里实现控制和机械联合我推荐用SimulationX,操作基本类似,但是Modelica语言对机械结构的支持要明显好于AMEsim,(但是液压系统的支持要弱些。。。) 总之只要你有条件,高精度的联合仿真才好。 最好是AMEsim和VirtualLab.Motion的(一个公司,软件配合上有优化)。 VirtualLab.Motion的操作不太常规,资料也少。上手快的话还是AMEsim+Adams好些,国内资料丰富,可以指导的高手也很多。 但是如果做履带,还是花点功夫学学VirtualLab.Motion。Adams的计算履带的时间会让你感觉时间真是个宝贵。
4. 生产线3D动画演示用什么软件
生产线3D动画演示用“Unity3D”这个软件。
生产线3D动画演示制作方案:
1、可以客户端,美术,模型等都分别建的项目,然后各自用SVN上传、更新。美术的话只管把UI做好上传就行了,然后客户端这边更新好UI自己再在客户端进行处理,有什么不合适的和美术沟通就行了。
2、版本管理优先选用AssetServer。Git和SVN什么的也挺好,前提是要培训所有成员正确使用,如果项目比较大,建议拆分为2~3个项目。
3、AssetsProject:主要存放模型、特效等美术素材。也放一些测试脚本,以便测试美术素材能正确配合脚本运行。
4、DataProject:存放策划的数值、关卡编辑器等等。也要放一些测试脚本,以便关卡能跑起来。
5、ScriptsProject:程序员专门维护的项目。主要用于逻辑开发,存放部分的美术资源。FinalProject: 最终合并的项目。开发过程中,视具体情况,上述项目某两个可以合并。
6、这样拆分项目肯定会导致额外的工作量,会有冗余的脚本,而且到时候合并也是个问题。这些都是无法避免的。所以前期一定要定好标准。
(4)unity3d如何物理仿真扩展阅读:
如何学习Unity3D:
1、第一步首先了解unity3d的菜单,视图界面。这些是最基本的基础,可以像学word操作一样,大致能明白有几个菜单,几个基本的视图,各自起什么作用的就可以了。当然还要了解人物基本的比例和结构。
2、第二步理解场景里面的坐标系统,输入系统,简单的向量概念。Unity3D的坐标系统及向量概念如果不理解清楚,不理解世界坐标,局部坐标的关系,即使一个简单的移动,缩放,旋转的几行代码,也会困惑你半天。
3、第三步学习创建基本的场景的一些基本概念:游戏对象,组件,脚本。在界面上分别体现在层次视图,项目视图及属性视图,要理清楚彼此之间的关系
4、第四步学习资源导入方面的一些基本元素:网格,材质,贴图,动画等。
5、第五步学习脚本的生命周期,Start,UpDate,ONGUI这些基本的方法。了解,预制,时间,数学等常用的类及相关方法。理解游戏对象,组件,脚本彼此之间的关系。
6、第六步进一步学习摄像机,灯光,地形,渲染,粒子系统,物理系统等等,这些每一个深入进去都是一个很复杂的主题。
7、第七步一些更高级的概念:向量的加减法点乘叉乘,光照法线贴图,内存管理,图形优化等等。
参考资料:网络-Unity3D
5. unity3d实现 软体物理 效果哪个方式好
也就是说 步骤1-步骤2是一个流程,计时器是另外一个流程;
这里提供两种方法去判断步骤1是否完成:
1.在计时器里,每倒数1次就判断是否已经是0(或步骤1是否完成).若完成,则执行步骤2;
2.单独将每个步骤写成方法,封装和该方法返回值与参数列表均相同的委托,设计一个总开关.按下总开关的时候执行步骤1对应的委托,在步骤1的回调函数里执行步骤2,以此类推..而计时器单独写一个计数类,包含开始、暂停和继续的方法,在每个步骤里去实例计数类的对象执行
6. 如何使用unity3d制作出真实的物理效果
给物体添加物理特性即可,在属性里面,使其具有碰撞,重力等物理性质
7. unity如何实现液压杆效果
1、首先了解液压杆的构成构造,在了解它的使用方法,效果是什么。
2、其次在打开Unity,新创建一个UIJoystick.cs脚本,利用Pro/E、3dsMax、Unity3D及面向对象的编程技术,做出液压杆。
3、最后即可实现液压支架的整体三维建模和运动仿真,实现压杆效果。