unity3d游戏开发之角色控制器,忽略碰撞,射线

unity3d游戏开发之角色控制器,忽略碰撞,射线

ID:39891208

大小:187.50 KB

页数:6页

时间:2019-07-14

unity3d游戏开发之角色控制器,忽略碰撞,射线_第1页
unity3d游戏开发之角色控制器,忽略碰撞,射线_第2页
unity3d游戏开发之角色控制器,忽略碰撞,射线_第3页
unity3d游戏开发之角色控制器,忽略碰撞,射线_第4页
unity3d游戏开发之角色控制器,忽略碰撞,射线_第5页
资源描述:

《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.}三、忽略碰撞    有些时候我们不想让指定的两对象发生碰撞,即

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。