unityのコードレビューしてくれ。 (105レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
9: デフォルトの名無しさん [] 2023/03/17(金)07:40 ID:aeVIJ/KU(1/15)
>>7
全然違うが?
ころすぞ?
10: デフォルトの名無しさん [] 2023/03/17(金)07:42 ID:aeVIJ/KU(2/15)
アップデートに毎回GetConponentやってるのがだめなんじゃね?
Start()に入れてみろ
20: デフォルトの名無しさん [] 2023/03/17(金)15:24 ID:aeVIJ/KU(3/15)
>>12
ちゃう
private void FixedUpdate()の上に
private void Start()
{
RigidBody ~
}
って感じ
21: デフォルトの名無しさん [] 2023/03/17(金)15:25 ID:aeVIJ/KU(4/15)
ホントだドットになってるのか…
22: デフォルトの名無しさん [] 2023/03/17(金)15:30 ID:aeVIJ/KU(5/15)
このカンマは区切りって意味だ
Vector3っていうベクトル情報を作成するメソッドにX方向の値、Y方向の値、Z方向の値を与えているという意味
Input.GetAxsisで横方向("Horizontal"Xの値)縦方向("Vertical"Zの値)を求めて
X方向にXの値、Y方向に0、Z方向にZの値を渡してベクトルを作ってるという意味
26: デフォルトの名無しさん [] 2023/03/17(金)15:39 ID:aeVIJ/KU(6/15)
>>23
いや初心者ならよくあることだと思うから別に問題はない
頑張って身につけてくれ
ちなみにGetConponent<>をなぜFixdUpdateの中に入れるとダメなのかというとこのFixdUpdateってのは毎フレームに実行されるからすでにGetConponent<>でコンポーネントを取得していても次のフレームでもまた取得してきて、そのまた次のフレームでも取得してきて~ってのを繰り返しちゃってめちゃくちゃ無駄が多くなっちゃうから
Start()は最初の一回だけ呼び出されるから一回取得したらもうずっとこのコンポーネントを使いますよ~って感じで無駄な処理が走らなくなる
27: デフォルトの名無しさん [] 2023/03/17(金)15:40 ID:aeVIJ/KU(7/15)
>>25
FixdUpdateのRigidbodyをStartの中のやつに入れ替える感じ
29: デフォルトの名無しさん [] 2023/03/17(金)15:47 ID:aeVIJ/KU(8/15)
これが正解
using System.Collections;
using UnityEngine;
public class MakeRigidAddForceChara: MonoBehaviour {
private Rigidbody rigidBody;//ここでrigidbodyの宣言をしておく
void Start()
{
rigidBody = GetComponent<Rigidbody>();//Start()でコンポーネントを1回コッキリで取得
}
void FixedUpdate()
{
float x = Input.GetAxis("Horizontal"); //横軸
float z = Input.GetAxis("Vertical"); //縦軸
//ベクトルに変換
Vector3 vec = new Vector3(x, 0, z);
//力を加える
rigidbody.AddForce(vec);
}
}
31: デフォルトの名無しさん [] 2023/03/17(金)15:50 ID:aeVIJ/KU(9/15)
いやたしかに調べたら色んなところでFixdUpdateの中にGetConponent<>が来てるの見つけたわ
例題的に簡単なやつとして用意したんだろうが回り回ってクソコードが蔓延っちゃったった感じだろうな
GetComponentはStart();{}の中に入れておくのが正解
33: デフォルトの名無しさん [] 2023/03/17(金)15:53 ID:aeVIJ/KU(10/15)
>>32
👍
35: デフォルトの名無しさん [] 2023/03/17(金)15:54 ID:aeVIJ/KU(11/15)
Unityの公式で移動の基礎みたいなことやってるから参考にしてみるといい
https://youtu.be/VqS1dTiVLFA
36: デフォルトの名無しさん [] 2023/03/17(金)15:59 ID:aeVIJ/KU(12/15)
rigidbodyって物理エンジンになってるから物体が重いと動かないのかもしれん
Vector3 vec =new Vector3(x,0,y)
のところを
Vector3 vec =new Vector3(x*1000,0,z*1000)とかに変えてみて?
ちなみにこれは今の力に1000をかけてるという形
37: デフォルトの名無しさん [] 2023/03/17(金)16:03 ID:aeVIJ/KU(13/15)
すまんタイプミスしてたわ
最後のrigidbodyはrigidBodyで大文字じゃないといけない
41: デフォルトの名無しさん [] 2023/03/17(金)16:24 ID:aeVIJ/KU(14/15)
>>40
いやID変わってないけど
42: デフォルトの名無しさん [] 2023/03/17(金)16:25 ID:aeVIJ/KU(15/15)
>>39
これでとりあえずやってみよう
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.602s*