zoukankan      html  css  js  c++  java
  • Unity 角色移动贴墙行走

    直接贴上代码,旋转角色角度检测碰撞

    Vector2 v2Normal = new Vector2(normal.x, normal.y);
                float fAngle = Vector2.SignedAngle(v2Normal, Vector2.up);
                gameObject.transform.localRotation = Quaternion.Euler(0, fAngle,0);
    
    
                Vector3 startPos = new Vector3(transform.position.x, transform.position.y+2, transform.position.z);
                Vector3 v3Dir =transform.TransformDirection(Vector3.forward);
                Vector3 endPos = startPos + v3Dir * Time.deltaTime * mMoveSpeed;
    
                // 检测是否碰到模型
                RaycastHit hitInfo;
                if (Physics.Linecast(startPos, endPos, out hitInfo, 1 << LayerMask.NameToLayer("Wall")))
                {
                    // 贴着模型行走
                    for (int i = 0; i < 72; i++)
                    {
                        fAngle += 5.0f;
                        gameObject.transform.localRotation = Quaternion.Euler(0, fAngle, 0);
                        v3Dir = transform.TransformDirection(Vector3.forward);
                        endPos = startPos + v3Dir * Time.deltaTime * mMoveSpeed;
                        if (!Physics.Linecast(startPos, endPos, out hitInfo, 1 << LayerMask.NameToLayer("Wall")))
                        {
                            gameObject.transform.Translate(Vector3.forward * Time.deltaTime * mMoveSpeed);
                            break;
                        }
                    }
                }
                else
                {
                    gameObject.transform.Translate(Vector3.forward * Time.deltaTime * mMoveSpeed);
                }  
  • 相关阅读:
    oc-autorelease
    oc-循环引用问题
    oc-内存管理总结
    tomcat-各文件夹作用解析
    oc-多对象内存管理
    oc-arc(Automatic Reference Counting 自动引用机制) 与 内存管理
    tomcat-context.xml
    oc-set方法内存管理 和 @property的参数
    【转载】java学习线路
    一段shell脚本
  • 原文地址:https://www.cnblogs.com/ylwn817/p/10271676.html
Copyright © 2011-2022 走看看