回答ありがとうございます。意図通りに動かないわけではなくて、そのコードでうまく動作する理由が理解できていないという趣旨の質問です。(わかりにくくて申し訳ないです)
public Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>(); ・・・①
}
void FixedUpdate()
{
if (Input.GetKey("up"))
{
rb.velocity = new Vector3(0, 10.0f, 0); ・・・②
}
}
一部抜粋ですがこのようなコードです。(調べつつ書きました)
①で変数rbにRigidbodyの値を入れて、②で変数rb内の速度の項目をいじっているように見えるのですが、その解釈だと変数の値が変わっただけで、オブジェクトのコンポーネントには反映されないのでは…と思って、値渡しの仕組みが疑問です。