查看: 2436|回复: 1
打印 上一主题 下一主题

如何让Collider碰撞移动CharacterController??

[复制链接]

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53488
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2013-7-15 22:58:46 |只看该作者 |倒序浏览
我有一个第三人称的游戏角色,游戏角色使用CharacterController


游戏角色要顺着路线一路闪躲铁球物件的机关
(铁球为钟摆式机关;铁球物件带有Collider)

我想让铁球(Collider)碰撞到游戏角色(CharacterController)时,
顺势的将游戏角色朝摆动的方向推挤出去

所以得靠着调用OnControllerColliderHit的方式来加一个脚本

但现在这写法却有一些大问题
角色确实能被铁球推挤移动了,推挤的方向也如铁球摆动的方向
但却只有角色的“正面”有被推挤的效果
如果铁球是碰撞到角色侧面或后面,都会变成穿过角色,
铁球只对角色的正面有推挤的物理特性


请问有高手能帮我看看问题出在哪吗
脚本如下

var movespeed = 20;
   
function OnControllerColliderHit (hit : ControllerColliderHit ) {
   
      
    if (hit.moveDirection.y < -0.3 || hit.collider.tag == "Terrain")
        return;
   
    if(hit.gameObject.tag == "Ball"){
   
            var controller : CharacterController = GetComponent(CharacterController);
            controller.tag == "Player";
            controller.Move(hit.moveDirection * movespeed * Time.deltaTime * -1);
            }
}
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2013-7-15 23:57:35 |只看该作者
我觉的这个是要在铁球碰到角色后,角色换成ragdoll才会合理,不然你如何解决它的物理现象
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-8-10 16:59 , Processed in 0.078725 second(s), 27 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部