欢迎来到天天文库
浏览记录
ID:39891208
大小:187.50 KB
页数:6页
时间:2019-07-14
《unity3d游戏开发之角色控制器,忽略碰撞,射线》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一、角色控制器(CharactorController) 角色控制器允许你在受制于碰撞的情况下很容易的进行运动,而不用处理刚体。角色控制器不受力的影响,仅仅当你调用Move函数时才运动。然后它将执行运动,但是受制于碰撞。 Unity3D封装了一个非常好用的组件来实现第一人称视角与第三人称视角游戏开发,我们称他为角色控制器组件,几乎不用写一行代码就可以完成一切的操作---- CharactrController(角色控制器). 首先要给游戏对象添加角色控制器,选中游戏对象,在Inspector -> AddComponent ->Physics-> CharacterCont
2、roller 举例:1.privateCharacterControllercontroller=null;//角色控制器对象2. privatefloatmoveSpeed=20.0f;//角色移动的速度3. voidStart(){4. //获取角色控制器对象5. controller=GetComponent();1. } 1.usingUnityEngine;2.usingSystem.Collections;3.4.publiccla
3、ssPlayer2:MonoBehaviour{5.6. //如果用CharacterController(角色控制器),需要添加碰撞器7.8. CharacterControllercontroller;9. publicfloatspeed=10;10. 11. voidStart(){12. controller=this.GetComponent();13. }14. 15. voidUpdate(){16.17. controller.SimpleMove(new
4、Vector3(Input.GetAxis("Horizontal")*speed,0,Input.GetAxis("Vertical")*speed));18. }19.}20.二、射线 射线,类比的理解就是游戏中的子弹。是在3D世界里中一个点向一个方向发射的一条无终点的线。在发射的过程中,一旦与其他对象发生碰撞,就停止发射。 Ray.origin:射线起点 Ray.direction:射线的方向 创建一条射线的方法Ray (origin : Vector3, direction : Vector3) Origin是射线的起点,direction是射线的方向
5、。 举例:1.usingUnityEngine;2.usingSystem.Collections;3.4.publicclassRayTest:MonoBehaviour{5.6. //Usethisforinitialization7. voidStart(){8. 9. }10. 11. //Updateiscalledonceperframe12. voidUpdate() 13. {1. if(Input.GetMouseButton(0))2. {3. Rayray=Camera.main.ScreenPointToRay(I
6、nput.mousePosition);//从摄像机发出到点击坐标的射线4. RaycastHithitInfo;5. if(Physics.Raycast(ray,outhitInfo))6. {7. Debug.DrawLine(ray.origin,hitInfo.point);//划出射线,只有在scene视图中才能看到8. GameObjectgameObj=hitInfo.collider.gameObject;9. Debug.Log("clickobjectnameis"+gameO
7、bj.name);10. if(gameObj.tag=="boot")//当射线碰撞目标为boot类型的物品,执行拾取操作11. {12. Debug.Log("pickup!");13. }14. }15. }16. }17.}三、忽略碰撞 有些时候我们不想让指定的两对象发生碰撞,即
此文档下载收益归作者所有