【问题标题】:Debug character movement backwards in Unity 5在 Unity 5 中向后调试角色移动
【发布时间】:2016-05-24 17:44:37
【问题描述】:

我有一个角色(机器人凯尔),我可以将角色从一侧移动到另一侧,然后向前移动。当角色开始向后移动时,它会无缘无故地消失。

另外,我将如何沿鼠标方向移动角色?我有它,所以它面向鼠标的方向,但是相机角度有点扭曲。

using UnityEngine;
using System.Collections;

public class PlayerScript : MonoBehaviour {

    public GameControlScript control;

    float strafeSpeed = 2;
    Animator anim;

    bool jumping = false;

    void Start () {
        anim = GetComponent<Animator>();
    }

    void Update () {
        if (Input.GetKey(KeyCode.RightArrow)){

            Vector3 newPosition = this.transform.position;
            newPosition.x++;
            this.transform.position = newPosition;

        }
        if (Input.GetKey(KeyCode.LeftArrow)){

            Vector3 newPosition = this.transform.position;
            newPosition.x--;
            this.transform.position = newPosition;

        }
        if (Input.GetKey(KeyCode.UpArrow)){

            Vector3 newPosition = this.transform.position;
            newPosition.z++;
            this.transform.position = newPosition;


        }
        if (Input.GetKey(KeyCode.DownArrow)){

            Vector3 newPosition = this.transform.position;
            newPosition.z--;
            this.transform.position -= newPosition;

        }
        Vector3 mousePos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 1000);
        Vector3 lookPos = Camera.main.ScreenToWorldPoint(mousePos);
        lookPos = lookPos - this.transform.position;
        float angle = Mathf.Atan2(lookPos.z, lookPos.x) * Mathf.Rad2Deg;
        this.transform.rotation = Quaternion.AngleAxis(angle, Vector3.down);

    }

    void OnTriggerEnter(Collider other)
    {
        if(other.gameObject.name == "Powerup(Clone)")
        {
            control.PowerupCollected();
        }
        else if(other.gameObject.name == "Obstacle(Clone)" &&
            jumping == false)
        {
            control.SlowWorldDown();
        }

        Destroy(other.gameObject);
    }
}

【问题讨论】:

  • 来吧,你写了this.transform.position -= newPosition;...
  • 实际上,我从 Sam 的自学 Unity 的源代码中获取了 24 小时内的代码。不过谢谢。
  • 如何在第一人称中更改鼠标以使其准确工作?它一直向左移动。

标签: c# debugging unity3d game-physics unity5


【解决方案1】:

ScreenToWorldPoint 可能是您的问题,因为您将 1000 固定为相机和对象之间的距离。

签出此link 并尝试记录您的lookPos 变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多