- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
在我的工程中,我承受的是物体遮挡作半透亮处理,假设依据上述文章中的思路来写代码的话,那么结果就是当多个物体遮挡角色时,只有第一个物体会半透亮,如图:角色被墙和屋顶遮挡住了,但是可以清楚的观察左下角的墙呈半透亮状态,而屋顶照旧不透亮
在我的工程中,我承受的是物体遮挡作半透亮处理,假设依据上述文章中的思路来写代码
的话,那么结果就是当多个物体遮挡角色时,只有第一个物体会半透亮,如图:
角色被墙和屋顶遮挡住了,但是可以清楚的观察左下角的墙呈半透亮状态,而屋顶照旧不
透亮
fontface=“宋体“size=“2“usingSystem.Collections.Generic;//引入命名
在看此文章时请先看上面的参考文章。更多精彩请关注【狗刨学习网】
看完以上文章后,你或许会想人家都已经给出全部代码了,你还写个毛啊
看完以上文章后,你或许会想人家都已经给出全部代码了,你还写个毛啊别急,现在进入主题
为了解决这个问题,我们不承受上述文章中的
为了解决这个问题,我们不承受上述文章中的physics.Linecast,在这里我们需要用到Physics.RaycastAll;使用方法详见圣典
ok,现在我们开头敲代码
ok,现在我们开头敲代码
首先,我们引入命名空间
首先,我们引入命名空间System.Collections.Generic,然后在声明三个需要用到的变
量
1.
空间
空间
2.
public
publicclassMyCamera1:MonoBehaviour
4.{
//观看目标
//观看目标
public
publicTransformTarget;
7.
//上次碰撞到的物体
//上次碰撞到的物体
private
privateListGameObjectlastColliderObject;
10.
//本次碰撞到的物体
//本次碰撞到的物体
private
privateListGameObjectcolliderObject;
}/font13.
}/font
复制代码
复制代码
我们需要放射一条射线,这条射线从角色当前位置放射置摄像机的方向
我们需要放射一条射线,这条射线从角色当前位置放射置摄像机的方向
1.
fontface=“宋体“
font
face=“宋体“size=“2“/*射线可以从头部起始*/
2
3
//这里是计算射线的方向,从主角放射方向是射线机方向
4
Vector3aim=Target.position;
5
//得到方向
6
Vector3 ve = (Target.position
-
3.
4.
5.
6.
transform.position).normalized;
transform.position).normalized;
7.
7float
7
floatan=transform.eulerAngles.y;
8
aim-=an*ve;
99.
9
10//
10
//在场景视图中可以看到这条射线
11//Debug.DrawLine(target.position,
11
//Debug.DrawLine(target.position,aim,Color.red);
1212.
12
13RaycastHit[]
13
RaycastHit[]hit;
14hit=
14
hit=Physics.RaycastAll(Target.position,aim,100f);//起始位
复制代码
置、方向、距离
置、方向、距离/font
射线发送完毕后,我们猎取发送射线时碰撞到的全部物体,并且添加进本次碰撞到的物体(colliderObject)变量中
射线发送完毕后,我们猎取发送射线时碰撞到的全部物体,并且添加进本次碰撞到的物体
(colliderObject)变量中
由于我的地图、护栏碰撞(不行见)、地面碰撞(不行见)是三个模型,也就是说地图本身是
没有任何碰撞的
所以当碰撞到的物体名为护栏或地面时,就不修改其透亮度,由于他本身就不行见
这里我偷懒了,直接推断物体名称,可自行改为推断物体tag
当视角旋转的时候,射线有时候会碰撞到角色,所以,我们猎取tag推断是否碰撞的物体
为角色
font
fontface=“宋体“size=“2“1
//将colliderObject中全部的值添加
进
进lastColliderObject
2.
2for
2
for(inti=0;icolliderObject.Count;i++)
3
lastColliderObject.Add(colliderObject[i]);
44.
4
您可能关注的文档
- Unit2Diet全新版大学英语综合教程五课文翻译.docx
- Unit2VacationPlanMorereadingandwriting教学设计新部编版.docx
- Unit2Waystogotoschool教学设计-小学英语六年级上册-人教PEP版.docx
- unit3英语泛读教程第一册.docx
- unit5WritingThreeThank-YouLetters课文译文教学内容.docx
- Unit8人教版英语八年级上册知识点听写本.docx
- Unity3d技术之2D骨骼动画插件Puppet2D的使用详解.docx
- unity3d程序美术问题汇总.docx
- unit现代农林英语译文.docx
- uni命令操作大全+日常使用.docx
文档评论(0)