如何在不用 C# 说出他的名字的情况下引用自己的对象
Posted
技术标签:
【中文标题】如何在不用 C# 说出他的名字的情况下引用自己的对象【英文标题】:How to refer an object of himself with out saying his name in C# 【发布时间】:2021-10-23 04:09:55 【问题描述】:我有几个对象,我需要计算与主要点(主要)的距离,并通过采用混沌值来增加主要与周围的每个对象之间的距离。 但我不想为每个人设置不同的脚本。我希望每个脚本都使用相同的脚本。
简单地说,这就是我正在尝试的: 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;
【问题讨论】:
你的主要目标对我来说不是很清楚。主要对象是什么?什么是对象2?此代码将附加到哪个游戏对象?什么是“自己参考脚本”? 我改进了编辑我希望它更容易理解:D 【参考方案1】:我猜你的意思很简单
float distances = Vector3.Distance (main.transform.position, transform.position);
其中transform
是MonoBehaviour
的属性(您的类继承自该属性)并返回
Transform
附加到此GameObject
。
所以GameObject
的Transform
这个组件被附加到。
【讨论】:
这么简单我实际上不需要写任何东西? yes ^^ 这基本上等于写this.transform
或this.gameObject.transform
.. 但通常在c#
你可以跳过this
如果没有与参数的名称冲突【参考方案2】:
而不是 object2.transform.position
,使用 transform.position
,它会起作用,它指的是你的脚本被攻击的游戏对象。
同样为简化起见,您可以先声明Vector3 name = transform.position
,如果需要重复使用,可以使用该向量。
【讨论】:
以上是关于如何在不用 C# 说出他的名字的情况下引用自己的对象的主要内容,如果未能解决你的问题,请参考以下文章
如何在CMD下建一个net命令,说出具体的操作过程.特别是建完如何运行.
LSTM之父再称ResNetGAN等五大网络都有他的功劳,网友却说:自负大于引用数