此行为上的引用脚本 (x) 丢失

问题描述 投票:0回答:0

我努力打造一款顶级黎明游戏

这里是错误:

  • 此行为的引用脚本 (PlayerController) 丢失!
  • 关于此行为(游戏对象“玩家”)的引用脚本丢失了!
  • 此行为的引用脚本(未知)丢失!
  • 关于此行为的引用脚本(游戏对象“sample_ground”)丢失了!

这是脚本:

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(Rigidbody2D))]

public class Character2DTopDown : MonoBehaviour {

    public float speed = 1.5f;
    public float acceleration = 100;

    private Vector3 direction;
    private Rigidbody2D body;

    void Start () 
    {
        body = GetComponent<Rigidbody2D>();
        body.freezeRotation = true;
        body.gravityScale = 0;
    }

    void FixedUpdate()
    {
        body.AddForce(direction * body.mass * speed * acceleration);
        
        if(Mathf.Abs(body.velocity.x) > speed)
        {
            body.velocity = new Vector2(Mathf.Sign(body.velocity.x) * speed, body.velocity.y);
        }
        
        if(Mathf.Abs(body.velocity.y) > speed)
        {
            body.velocity = new Vector2(body.velocity.x, Mathf.Sign(body.velocity.y) * speed);
        }
    }

    void LookAtCursor()
    {
        Vector3 lookPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.transform.position.z));
        lookPos = lookPos - transform.position;
        float angle  = Mathf.Atan2(lookPos.y, lookPos.x) * Mathf.Rad2Deg;
        transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
    }

    void Update () 
    {
        direction = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));

        LookAtCursor();
    }
}

我试着让我的角色开始走路,但他只是站着不动

c# unity3d
© www.soinside.com 2019 - 2024. All rights reserved.