public override void OnInspectorGUI() { //値の変更をする Undo.RecordObject(target, "move"); // target は処理コードのインスタンスだよ! 処理コードの型でキャストして使ってね! MoveFloor move = target as MoveFloor; // -- カスタム表示 // -- 速度 -- move.speed = EditorGUILayout.FloatField("速度", move.speed); // -- 動く範囲 -- move.length = EditorGUILayout.FloatField("動く範囲", move.length); // -- 床とスイッチの紐づけ -- move.FlagNo = EditorGUILayout.IntField("スイッチとの紐づけ", move.FlagNo); // -- 移動方向 -- move.MoveDirectionFlag = EditorGUILayout.Toggle("チェックなら縦移動", move.MoveDirectionFlag); // -- スイッチ式かどうか move.SwichType = EditorGUILayout.Toggle("スイッチ式かどうか", move.SwichType); //値の変更を保存 EditorUtility.SetDirty(move); }
void Resize() { Undo.RecordObjects(targets, "Resize"); foreach (var t in targets) { MoveFloor lMoveFloor = t as MoveFloor; lMoveFloor.Resize(); } }
private void CarryDown() { Status = "Carry down"; UpdateStatus?.Invoke(Status); DataBase.Direction = 1; while (CurrentFloor != ElevatorList[0]) { CurrentFloor -= DataBase.Direction; CarryFloor?.Invoke(); MoveFloor?.Invoke(); Thread.Sleep(3000); AddFloor?.Invoke(); } Stand(); }
private void GoEmtyToCall() { Status = "Go emty to call"; UpdateStatus?.Invoke(Status); NumIdleTransport++; if (ElevatorList[0] > CurrentFloor) { DataBase.Direction = -1; } else { DataBase.Direction = 1; } while (CurrentFloor != ElevatorList[0]) { CurrentFloor -= DataBase.Direction; MoveFloor?.Invoke(); Thread.Sleep(3000); } Stand(); }
// 무브플로어 생성 #region Create MoveFloor List public void Create_MoveFloor() { for (int i = 0; i < mMax_X; i++) { mFloorList.Add(new List <GameObject>()); for (int j = 0; j < mMax_Y; j++) { //생성부 GameObject obj = GameObject.Instantiate(mFloorPrefab); //변형부 mMoveFloor = obj.GetComponent <MoveFloor>(); mMoveFloor.mX = i; mMoveFloor.mY = j; obj.name = "MoveFloor [" + i + "], [" + j + "]"; obj.transform.parent = mFloorParent; obj.transform.position = new Vector3(2.5f * i, 0.1f, 2.5f * j); //저장부 mFloorList[i].Add(obj); } } mFloorParent.transform.rotation = Quaternion.Euler(0, -90, 0); }