首页 > 解决方案 > 为什么我不能将我的播放器附加到脚本中的转换?

问题描述

我正在尝试制作一个脚本,僵尸在其中寻找玩家,如果玩家进入边界,它将开始追逐它。我的问题是我无法将我的播放器附加到检查器中的脚本,我不确定为什么。我对代码没有问题(至少我不这么认为),只是它没有附加。播放器是统一标准资产的预制件。

编辑:脚本附加到我资产中的预制件上。层次结构中的玩家。

以防万一这是我的代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ZK_attack : MonoBehaviour
{    
    public Transform Player;
    public float MoveSpeed = 4.5f;
    public float MaxDist = 4.0f;
    public float MinDist = 1.5f;
    private Coroutine animat = null;
    private Animator anim;


    void Update()
    {
        

        transform.LookAt(Player);

        if (Vector3.Distance(transform.position, Player.position) >= MinDist)
        {
            transform.position += transform.forward * MoveSpeed * Time.deltaTime;
            anim.SetBool("inRadius", true);

            if (Vector3.Distance(transform.position, Player.position) <= MaxDist)
            {
                anim.SetBool("AttackingPlayer", true);


            }

        }

        if (Vector3.Distance(transform.position, Player.position) <= MinDist)
        {
            anim.SetBool("inRadius", false);
        }

        if (Vector3.Distance(transform.position, Player.position) >= MaxDist)
        {
            anim.SetBool("AttackingPlayer", false);
        }
    }
}

标签: c#unity3d

解决方案


好的,问题是您只能将对象拖到场景中已经存在的脚本中,除非它们本身是 assests 文件夹中的预制件,即使它位于对象上。为了完成你需要的,在你的 Start() 添加

Player = GameObject.Find("...name of object you wish to set as Player").transform;

推荐阅读