我正在尝试使用c#统一制作游戏的外观。我需要检测我是否在特定层上构建。
我已尝试多次将代码向下编辑,但似乎找不到问题。我还观看了多个视频,这些视频解释了我的代码应该可以工作,但也许我只是没看到什么。任何帮助都会很棒。
这是我用于图层检测的代码:
let pictureHTML = data.map(function(data) {
return data = `
<div class="name-title-bottom>">
<img class="profile-img" ${data.picture}>
<li class="data-name">${data.name}</li>
<li class="data-jobTitle">${data.jobTitle}</li>
</div>
`
});
let dataHTML = data.map(function(data) {
return data =`
<div class="right-side">
<ul>
<li class="data-jobTitle">Company: ${data.Company}</li>
<li class="data-name">School: ${data.School}</li>
<li class="data-name">Experience: ${data.Experience}</li>
<li class="data-jobTitle">School: ${data.School}</li>
<li class="data-name">Major: ${data.Major}</li>
<li class="data-jobTitle">Email: ${data.Email}</li>
<li class="data-email">${data.LinkedInUrl}</li></ul><br></div>
`
});
$(".hook").append(pictureHTML);
$(".hook2").append(dataHTML);
});
.main{
// position: relative;
padding: 80px 80px 130px 10px;
display: inline-block;
.right-side{
display: inline-block;
float: right;
// position: absolute;
// top: 180px;
// right: 0px;
width: 250px;
height: 200px;
padding: 10px;
}
.name-title-bottom{
// position: absolute;
// bottom: 0;
// left: 200px;
float: left;
padding: 30px 30px 30px 40px;
text-align: center;
display: inline-block;
}
}
这应该做的是,如果射线与某些图层碰撞(在代码中进一步设置为图层蒙版),则将布尔值buildBlocked设置为true,但不这样做,并且buildBlocked永久为false。同样,任何帮助将不胜感激。
答案 0 :(得分:0)
来自https://docs.unity3d.com/ScriptReference/Physics.Raycast.html
// Bit shift the index of the layer (8) to get a bit mask
int layerMask = 1 << 8;
// This would cast rays only against colliders in layer 8.
// But instead we want to collide against everything except layer 8. The ~ operator does this, it inverts a bitmask.
layerMask = ~layerMask;
RaycastHit hit;
// Does the ray intersect any objects excluding the player layer
if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, Mathf.Infinity, layerMask))
{
Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * hit.distance, Color.yellow);
Debug.Log("Did Hit");
}
else
{
Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * 1000, Color.white);
Debug.Log("Did not Hit");
}