小编sal*_*157的帖子

基于类似 Doom 的角度的精灵改变

所以,我正在尝试制作一个第一人称游戏,它使用与 Doom、Duke Nukem 等游戏相同的精灵机制。

到目前为止,我可以识别与静态对象相关的角度,但不能识别与旋转对象相关的角度。我有一些“敌人”会改变旋转并开始跟随我,但计算切线角度 (Mathf.Atan2) 并没有考虑敌人的旋转。

这是我到目前为止使用的代码,它非常适合不旋转的对象:

 int GetAngleIndex()
 {
    var dir = cam.transform.position - transform.parent.forward;
    var enemyAngle = Mathf.Atan2(dir.z, dir.x) * Mathf.Rad2Deg;

    if (enemyAngle < 0.0f)
        enemyAngle += 360;

    Debug.Log("Angle from the player is: " + enemyAngle);

    if (enemyAngle >= 292.5f && enemyAngle < 337.5f)
        return 8;
    else if (enemyAngle >= 22.5f && enemyAngle < 67.5f)
        return 2;
    else if (enemyAngle >= 67.5f && enemyAngle < 112.5f)
        return 3;
    else if (enemyAngle >= 112.5f && enemyAngle < 157.5f) …
Run Code Online (Sandbox Code Playgroud)

c# rotation unity-game-engine

5
推荐指数
1
解决办法
3083
查看次数

标签 统计

c# ×1

rotation ×1

unity-game-engine ×1