{
if (Input.GetKey(KeyCode.Space))
{
if (transform.localEulerAngles.x <30)
this.transform.Rotate(new Vector3(1, 0, 0), 5f * Time.deltaTime)
else
this.transform.localEulerAngles = new Vector3(30,0,0)
}
else
{
if (transform.localEulerAngles.x >0 &&transform.localEulerAngles.x <= 30)
this.transform.Rotate(new Vector3(-1, 0, 0), 5f * Time.deltaTime)
else
this.transform.localEulerAngles = new Vector3(0, 0, 0)
}
}
老实说,我学Unity时,角色控制真的是一个难点,尤其是动画方面。想要在Unity中控制好一个角色且让这个角色的动作协调,不是一个简单的问题,需要我们深入理解其原理。只有这样,我们才有能力写一套精湛的角色控制脚本。Unity里面的动画系统相当复杂(也许是我的程度不够吧),我们不要期望自己不用将Unity动画系统的一些原理搞清楚就能够写出一套很棒的角色控制脚本,这是很愚蠢的。仅仅只是角色移动就播放跑步的动画,角色停下来就播放站立的动画,具有这种想法的程序员应该注意一下了。最近在做unity开发的时候,需要里面的物体角色自然的移动,在移动的过程中可以自由旋转方向移动,这里我们可以直接让物体一直向自己的前方移动,然后通过对物体的旋转来控制移动方向。...展开
工具原料unity3d 5.3工具。
方法/步骤分步阅读
1
/8
打开unity3d场景创建一个立方体作为角色。
2
/8
接着给立方体添加刚体属性。
3
/8
创建一个Test2脚本。
4
/8
在脚本里面创建两个变量Speed_move、Speed_rot分别控制移动速度与旋转速度。
5
/8
我们使用Translate通过W与S按键控制立方体的前后移动,前进用forward,后退用back。
6
/8
使用Rotate通过A与D按键控制物体的旋转,up是Y轴方向
7
/8
然后我们把脚本放到立方体上面。
8
/8
运行游戏场景,按住W移动的时候,同时按住A或D就可以进行转向移动了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)