导入的模型不能与地面相撞是吧 一放置就落下了, 拖入3D和其他模型以后不要急着拖入场景 先点击一下模型inspector栏里的Model选项卡里 Generate Colliders 勾选,然后拖入场景就可以了!
OnTriggerEnter
OnTriggerEnter is called when the Collider other enters the trigger
OnTriggerExit
OnTriggerExit is called when the Collider other has stopped touching the trigger
OnTriggerStay
OnTriggerStay is called almost all the frames for every Collider other that is touching the trigger
OnCollisionEnter
OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider
OnCollisionExit
OnCollisionExit is called when this collider/rigidbody has stopped touching another rigidbody/collider
OnCollisionStay
OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider
基本就是这些,
1,开始接触到其他碰撞体
2,持续接触其他碰撞体
3,停止接触其他碰撞体
共有三个阶段:
OnCollisionEnter(进入碰撞)
OnCollisionStay (逗留碰撞)
3OnCollisionExit(当退出碰撞)
Unity3D是由Unity Technologies开发创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。
Unity3D源于丹麦哥本哈根,公司总部位于旧金山,并且在哥本哈、维尔纽斯等都有办事处,拥有大约160员工。
Unity3D游戏引擎技术研讨会最早于2010年5月在韩国举行。2011年11月注册用户超过了75万,包括大型游戏出版商、独立工作室、学生和业余爱好者,并且仍然以惊人的速度增长;Unity的3D开发工具和平民化的普及政策,在国际上屡获殊荣。
你创建的墙应该是用Cube创建的吧,cube自带Box collider属性(unity3d的first person controller也带有碰撞检测)。如果你想自己创建的人物也能检测碰撞,随便加入一种碰撞都可以,盒碰撞·球碰撞·胶囊碰撞……加入方法:选中自己创建的人物,菜单栏中的“component"-----"physics"----"box collider(盒碰撞)"。还有你写的向前行走的代码:Vector3forwardTimedeltaTimeSpeed,加入timedeltatime 后运行起来不会产生帧的闪烁。
void OnCollisionEnter2D(Collision2D col) ///Collision2D co1 碰撞的那个碰撞物体信息
{
var yk = coltransformGetComponent<bringkey>(); //获取那个碰撞物体上的类BringKey
if (ykyellowkey > 0)
{
Destroy(gameObject);
ykyellowkey--;
}
}
要获取的是已经存在于场景中的对象,继承MonoBehaviour的类相当于你贴到对象上的一个脚本控件。你要获取的是一个已经存在与场景内的对象,不能使用New,OnCollisionEnter2D函数中发生碰撞的那一刻会把与当前物体接触的那个物体碰撞信息通过参数Collision2D col传递进来。可以通过这个传递过来的值,修改传递过来物体上脚本的参数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)