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

Vector2 v2Normal = new Vector2(normal.x, normal.y);
float fAngle = Vector2.SignedAngle(v2Normal, Vector2.up);
gameObject.transform.localRotation = Quaternion.Euler(, fAngle,); Vector3 startPos = new Vector3(transform.position.x, transform.position.y+, 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, << LayerMask.NameToLayer("Wall")))
{
// 贴着模型行走
for (int i = ; i < ; i++)
{
fAngle += 5.0f;
gameObject.transform.localRotation = Quaternion.Euler(, fAngle, );
v3Dir = transform.TransformDirection(Vector3.forward);
endPos = startPos + v3Dir * Time.deltaTime * mMoveSpeed;
if (!Physics.Linecast(startPos, endPos, out hitInfo, << LayerMask.NameToLayer("Wall")))
{
gameObject.transform.Translate(Vector3.forward * Time.deltaTime * mMoveSpeed);
break;
}
}
}
else
{
gameObject.transform.Translate(Vector3.forward * Time.deltaTime * mMoveSpeed);
}

Unity 角色移动贴墙行走的更多相关文章

  1. unity 角色换装

    unity角色换装的关键是更改角色部位上的物体的SkinnedMeshRenderer组件的属性: 更改mesh:mesh决定了部位的物体的外形,是主要的数据. 刷新骨骼:同一个部位下,不同的mesh ...

  2. Unity 角色复活和重新开始游戏

    作者写游戏完成的时候,还需要从新想下如何把游戏设置重新开始,角色如何复活. 一般大多数都会采用这种方式来代替游戏重新开始 Application.LoadLevel("xxx场景" ...

  3. Unity 角色场景传送功能

    传送触发器 using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine. ...

  4. Unity角色对话

    对话类------------------------------------------------------------------------------------------------- ...

  5. unity 角色旋转

    using UnityEngine; using System.Collections; public class Triangle : MonoBehaviour { public float sp ...

  6. Unity角色残影特效

    残影特效在网上有很多例子,比如这个,我参考着自己整合了一下,算是整合了一个比较完整且特别简单易用的出来,只需要一个脚本挂上去无需任何设定就能用. 这里只针对SkinnedMeshRenderer的网格 ...

  7. 【Unity】11.1 角色控制器 (Character Controller)

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 角色控制器(Character Controller)主要用于对第三人称或第一人称游戏主角的控制.如果要创建类人角色,可 ...

  8. 台北Unity开发者研讨会 笔记

    本文转自:http://ndark.wordpress.com/2013/05/12/20130511-台北unity开发者研讨会-笔记/ (墙外) 说明 本文单纯只是笔记,若有笔误敬请见谅. 相关参 ...

  9. 【Unity探究】物理碰撞实验

    这几天为了准备面试,所以决定对平时学习中的盲点扫盲一下,首先想到的就是物理碰撞.以前没有好好研究过,一直模糊不清,到底什么条件下才可以产生物理碰撞呢?只要其中一个有Rigidbody就可以了吗?所以进 ...

随机推荐

  1. 问题-python3.6找不到tkinter

    问题:import tkinter失败 然后直接pip安装也不ok python3.6安装过程中会提示是否选择安装tkinter,如此只有打开原来的安装程序 勾选箭头所示

  2. log4j实现日志的输出

    1.log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等;我们 ...

  3. Tensorflow数学运算

    一.Tensor 之间的运算规则 1) 相同大小 Tensor 之间的任何算术运算都会将运算应用到元素级 2) 不同大小 Tensor(要求dimension 0 必须相同) 之间的运算叫做广播(br ...

  4. springboot学习三:整合jsp

    在pom.xml加入jstl <!--springboot tomcat jsp 支持开启--> <dependency> <groupId>org.apache. ...

  5. 批量查杀该死的VBscript “svchost.exe” 脚本挂马

    今天写代码突然发现HTML文件最后多了一段VBscript代码: <SCRIPT Language=VBScript><!-- DropFileName = "svchos ...

  6. TestNG 单元测试框架的使用

    JUnit让开发人员了解测试的实用性,尤其是在单元测试这一模块上比任何其他测试框架都要简单明了.凭借一个相当简单,务实,严谨的架构,JUnit已经能够“感染”了一大批开发人员.TestNG是一个测试框 ...

  7. 关于XML的小思考

    最近一段时间又接触了XML语言,现在看来它是一种可扩展标记语言,它的格式是标签语言,例如<>****<>此类,它在动态编译中有重要的作用,举个例子,一个班级里有37个人,到学期 ...

  8. windows环境下安装rabbitmq及配置可视化管理界面

    1.环境 windows7 64位 rabbitmq3.7.9 erlang10.22.先安装erlang,后安装rabbitmq.下载地址: rabbitmq http://www.rabbitmq ...

  9. [DOM]初识DOM

    文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象 ...

  10. 不学无术的下场——OO第一单元总结

    第一单元OO作业总结 第一次作业 ​ 第一次作业的要求是对仅有常数和幂函数的式子进行求导. ​ 由于是第一次接触JAVA,对很多东西都还不熟悉,尤其是正则表达式做得不好.当时我的思路如下: 建立Pol ...