私は、スクリプトを動作させるために必要なオブジェクトの位置をオブジェクトとして持つC#でコードを記述しようとしています。私はそれが私が使用されていたと思っているものとしてポインタを使用しようとしていた。それは私が何か間違っていると思うようになった安全でないタグを使用しなければならないと言いました。私は少しこれの新しいですが、これまで私はC + +で私の知識のほとんどを持っているので、私はクラスで学んだことです。私はそれを見てみましたが、私はそれを見つけることができませんでした。これは基本的に私が今持っているものです。C#で別の変数の値を取得するには
using UnityEngine;
using System.Collections;
public class SGravSim : MonoBehaviour {
public GameObject moon;
public GameObject earth;
private struct Cords
{
public float* x
{
get
{
return x;
}
set
{
if (value != 0) <== this thing is realy just a placeholder
x = value;
}
}
public float* y
{
get
{
return y;
}
set
{
if (value != 0) <== this this is only in here for now
y = value;
}
}
public void DisplayX()
{
}
}
private Cords moonLocation;
private Cords earthLocation;
private Cords SataliteLocation;
// Use this for initialization
void Start() {
moonLocation.x = moon.transform.position.x;
moonLocation.y = moon.transform.position.y;
earthLocation.x = earth.transform.position.x;
earthLocation.y = earth.transform.position.y;
SataliteLocation.x = this.transform.position.x;
SataliteLocation.y = this.transform.position.y;
}
// Update is called once per frame
void Update() {
Debug.Log(moon.transform.position.x);
//
// Summary:
// The position of the transform in world space.
float yMoon = moon.transform.position.x
print(moonLocation.y);
}
}
私はあなたが何も追加できないようにすることを計画していました。 私は地球全体を書くことができると思う。私がそれを使う必要があるたびに、私はちょうどそこにもっと良い方法があるかどうか、また変数としてすべてを私はそれを読むことをしたいです。
私は本当にここであなたの問題を把握できませんでした。私が気づいたいくつかの事があります:1 - 値の代わりに参照を使用する必要がある場合は、構造体ではなくクラスを使用する必要があります。ポインタの必要はありません。 setterに定義させたくない場合は、デフォルトのコンストラクターを変更して値を受け入れることができます。 – Gubr
'get'で読み込みアクセスが必要な場合は、単に' set'を省略してください。 – khlr
あなたが解決したいことを説明してください、未知の問題に対する潜在的な解決策についての質問を理解するのを難しくしているので、質問は今立つと非常に不明です。代わりにその問題について質問してください。あなたが解決しようとしている最も重要な問題は何ですか? –