我正在制作一个类似游戏的宠物小精灵,你四处走动。 这是一款自上而下的2D游戏。 但是我试图在我面前检测某个瓷砖。
我的角色是Y 1,地图是Y 0。 我试图转发光线投射,但它并没有真正起作用。
这是我试过的:
if (Input.GetKey("w") && isMoving == false)
{
bool disableMove = false;
RaycastHit hit;
if (Physics.Raycast(transform.position, Vector3.forward, out hit, 2))
{
var distanceToGround = hit.distance;
Debug.Log("HIT");
if (hit.collider.gameObject.tag == "collision")
{
disableMove = true;
Debug.Log("Tree");
}
}
if (!disableMove)
{
Calculatewalk();
anim.Play("WalkingUp");
increment = 0;
isMoving = true;
startPoint = transform.position;
endPoint = new Vector3(transform.position.x, transform.position.y, transform.position.z + 1);
}
disableMove = false;
}
答案 0 :(得分:2)
如果对撞机是2D对撞机,请使用Physics2D.Raycast
如果您不使用新的Unity 2D系统,我们无法帮助您。也许你不在正确的Z层。 Vector3.forward似乎也不是很好。尝试使用transform.forward。
我希望我能帮到你!
答案 1 :(得分:-2)
xD
为什么在javascript
写作时有c#
变量:
var distanceToGround = hit.distance;
行7