如何在 C# 中引用自己的对象而不用说出他的名字

How to refer an object of himself with out saying his name in C#

我有几个对象,我需要计算与主要点 (main) 的距离,并通过采用混沌值来增加主要点与周围每个对象之间的距离。 但我不想给每个人都放一个不同的剧本。我希望每个脚本都相同。

简而言之,这就是我正在尝试的:
222 = 2 2 2

212=2 1 2

222= 2 2 2

// 1是重点

// 2是它周围的其他物体

那么我怎么能在不说出他的名字的情况下提到他自己呢?

或者我应该改变我打算做的方式吗?

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

public class DistanceMovement : MonoBehaviour
{

public int chaos = 0;
public GameObject main;        // I referred the main object
                               // which we calculete distance from
 float distance;                 

void Start()
{
    float distance = chaos;      // firts checking
}

void Update()
{
    // Gets the distance between 2 objects 
float distances = Vector3.Distance (main.transform.position, object2.transform.position);
    //how can I do that without saying objects name but saying it his himself??
    

    // checks whether there was increase in chaos lvls
     if (chaos - distance >= 0)
    {
        chaos - distance += distances;
    } 
}
         
}

我猜你的意思只是

float distances = Vector3.Distance (main.transform.position, transform.position);

其中 transformMonoBehaviour 的 属性(您的 class 继承自它)和 returns

The Transform attached to this GameObject.

所以 GameObject 这个组件的 Transform 附加到。

而不是 object2.transform.position ,使用 transform.position ,它将起作用并且它指的是您的脚本被攻击的游戏对象。 同样为了简化,您可以先声明 Vector3 name = transform.position,然后在需要重复使用时使用该向量。