繁体   English   中英

Unity GameObject.FindGameObjectsWithTag(“ Player”)。transform.position;

[英]Unity GameObject.FindGameObjectsWithTag (“Player”).transform.position;

你好,我有问题,我需要使用标签播放器获取超过1个对象的transform.position,以便脚本追逐多个播放器

using System.Collections.Generic;
using UnityEngine;

public class enemyChase: MonoBehaviour 
{
    //private GameObject[] Player;
    Transform Player;

    // Use this for initialization
    void Start ()
    {
        Player = GameObject.FindGameObjectsWithTag ("Player").transform.position;
    }

    // Update is called once per frame
    void Update ()
    {
        if (Vector3.Distance (Player.position, this.transform.transform.position) < 10) {
            Vector3 direction = Player.position - this.transform.position;

            this.transform.rotation = Quaternion.Slerp (this.transform.rotation, Quaternion.LookRotation(direction), 0.1f);
            if (direction.magnitude > 1) {

                this.transform.Translate (0,0,0.05f);
            }
        }

    }    
}

FindGameObjectsWithTag 返回一个数组,并且数组没有.transform属性。

您需要使用循环并遍历结果(可能是找到最近的? )。

另外,在您的脚本中, Player的类型为Transform ,但是您尝试为其分配.transform.position (类型为Vector3)的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM