課題 1
1. データ型は、(原子型) と構造型の 2 つのカテゴリに分類できます。
2. (データ構造) は、コンピュータがデータを保存および編成する方法です。相互に 1 つ以上の特定の関係を持つデータ要素の集合を指します。 3.
コード再構成とは、プログラムの (構造) を変更せずに変更することを指します。その動作は、コードの読みやすさ、変更の容易さなどを改善することです。
4. ソフトウェア実装と通常のプログラミングの主な違いは、ソフトウェア (ソフトウェアの統合とテスト) です。
5. 教科書によると、アジャイル開発は、テスト駆動開発などのいくつかの新しいテクノロジや実践方法を生み出しましたが、これには含まれません。 (ソフトウェアアーキテクチャ)
6. ホワイトボックステストでは以下のことは保証されません(誤った機能や欠落している機能)
7. ホワイトボックステスト手法を使用する場合、テストデータは(プログラムの内部ロジック)および指定されたカバレッジ基準に基づいて決定される必要があります
8. ホワイトボックス法でよく使われる手法は(パステスト)法です。
9. (単体) テストではホワイト ボックス テスト手法が一般的に使用されます。
10. 単体テストを実行する場合、一般的に使用される手法は (ホワイト ボックス テストを使用し、ブラック ボックス テストで補足する)
11. 条件テストのエラーについて (条件にはエラーにはインターフェイスエラーがあります)
12. ファイル割り当て操作 (2134) を完了するには、次の 4 つの手順を実行してください。 ① バイトストリーム入力ストリームをソースファイルに関連付け、出力ストリームをターゲットファイルに関連付けます。② ソースファイルとターゲットファイルを明確にする。③ 入力ストリームの読み取りメソッドを使用してファイルを読み取り、バイトをターゲット ファイルに書き込みます。④ リソースを閉じます。
13.次のオプションのうち、コマンド ライン操作ではないものはどれですか (Windows スケッチパッド)。
14. 次のデバイスのうち、入力デバイスと出力デバイスの両方であるのはどれですか (カメラ)
15. 一般的なソフトウェアのインストール プロセスでは、ユーザーが段階的にデータを構成し、[次へ] をクリックする必要があります (コマンド ライン インタラクション)
16。以下のいずれにも該当しない 評価の目的は(製品開発プロセス全体でユーザーのニーズを考慮できるようにすること)です。
17. ユーザビリティは、製品の機能が基本的に完全であることを保証し、使いやすさを評価するために使用される測定属性です。ユーザーインターフェースの。ユーザビリティには 5 つの特性があり、その中で (使用効率) は最も基本的なユーザビリティ属性です。
18. 次の説明のうち、間違っているものはどれですか (人間とコンピュータのインタラクションの発展に伴い、新しいインタラクション方法が出現し、古いものは必要なくなりました)
19. ユーザーの待ち時間感を軽減できるデザインは次のうちどれですか (すべての20.以下は静的
です テストされる内容(コードテスト)
21. ソフトウェアテスト技術は静的テストと動的テストに分けられますが、次の記述のうち間違っているのはどれですか(ホワイトボックステストは静的テスト、ブラックボックステスト) 22.ソフトウェアのテスト
方法はテストプロセスに従う プログラムを実行するかどうかは動的テストと(静的テスト)に分けられる
23. テストに関する次の記述はどれが正しいか(静的テストはプログラムを実行しないプロセスである)
24.正式なレビューではない以下の方法は (コーディング標準と仕様)
25. ピアレビューに関する正しい記述は (テストの目的) です。ピアレビューは製品の欠陥を発見することであるため、レビューへの投資により、後の多くの手戻りを減らすことができます)
26. (技術レビュー) は、ソフトウェアの品質を向上させることを目的とした技術活動です
27. 統合テストは、すべてのモジュールをシステムまたはシステムに組み立てることですテスト (単体テスト) に基づく設計要件に従ってサブシステムをテストし、モジュールの組み立てプロセスとモジュール インターフェイスの正確性をチェックします。
28. ソフトウェアテストフェーズでは、テストステップは順番に次のステップに分けることができます: (単体テスト、統合テスト、システムテスト、受け入れテスト)
29. 再構築とは何ですか? どの記述が正しいですか?関数 (ソフトウェア) 観察可能な動作を前提として、コードの内部構造を変更して、コードを理解しやすく、保守し、拡張しやすくします。
30. 「テスト駆動開発」に関して、次の記述のうち間違っているものはどれですか (TDD の目的はソフトウェアをテストし、コードの品質を保証することだけです)。
課題 2
1. ソフトウェアは、その機能に応じて、(システムソフトウェア)、サポートソフトウェア、アプリケーションソフトウェアの3種類に分類されます。
2. ソフトウェアは、サービス対象範囲に応じて、プロジェクトソフトウェア(受託開発)と(製品ソフトウェア)(または一般ソフトウェア)に
分けられます。 3. ソフトウェアのライフサイクルは、ユーザーの観点から、次の 3 つの段階に分けられます。 )、ソフトウェアの取得、ソフトウェアの使用。
4. ソフトウェア設計とは、要件を実現する方法についての決定と計画を与えることです。これは、システムの機能をシステムのさまざまなコンポーネントに割り当てるプロセスです。これには一連のアクティビティが含まれます: 1. 要件の分割 2. サブシステムの決定 3. 要件の割り当て4. サブシステムの定義 機能⑤(サブシステムの機能定義)
5. ソフトウェアの保守は、事後保守(適応保守)、完全保守、予防保守の4種類に分けられます。
6. ウォーターフォール開発プロセス。ソフトウェア ライフ サイクル モデルとも呼ばれます。ソフトウェアのライフサイクルに従って、開発を計画、需要分析、ソフトウェア設計、プログラム作成(ソフトウェアテスト)、運用保守の6つの基本的な活動に分け、それらの相互接続の順序がトップダウンで固定的に規定されています。水は一歩一歩落ちていきます。
7. アジャイル開発は、急速に変化する要件に対応するソフトウェア開発機能です。ユーザーニーズの進化を核とし、ソフトウェア開発に対して反復的で段階的なアプローチを採用しています。
8. ソフトウェアには、タイムシェアリング機能、双方向性、バッチ処理のうち、どの機能が含まれますか?
9. ソフトウェア開発者の観点から見ると、ソフトウェアのライフ サイクルは通常、次の 3 つの段階に分かれています: ソフトウェアの定義、ソフトウェアの開発、ソフトウェアの保守
10. 高級プログラミング言語にはさまざまな分類があります。分類基準の 1 つは、言語のコンピューティング モデルに従って、高級言語を宣言型と命令型の 2 つの主要なカテゴリに分類することです。
課題 3:
1. モジュール化は、最新のソフトウェア開発テクノロジーの基本原則です。(機能)はソフトウェアのモジュール化を実現するための基本的な手段です。
2. 関数内の各処理要素は同じ関数と密接に関連しており、順番に実行する必要があります。前の機能要素の出力は次の機能要素の入力になります。つまり、1 つの関数が複数の関数を完了し、これらの関数は必ず実行されます。 3.関数の
グループはすべて、同じ (グローバル単純変数) ではなく同じ (グローバル データ構造) にアクセスし、グローバル変数の情報は保持されません。パラメータを介して渡されます。これは外部結合と呼ばれます。
4. 配列を使用して異なる数式を「演習」として保存する場合、異なる数式を含む 80 個の演習を生成するときの数式比較の数は (3160) です。 5.
テスト要件では、プログラムの期待される結果と実際の実行結果が明確である必要があります。合理的(観察可能)かつ比較可能なものであること。
6. プログラミングとソフトウェア開発の実践と理論には、(データ)中心の開発方法とオペレーション中心の開発方法がありました。
7. モジュール化は、問題をサブ問題 (テストが簡単、制御が簡単、理解が簡単) に分解する重要な手段であり、複雑さを制御する方法です。
8. モジュールには 3 つの大きな特徴があります: (互換性、汎用性、独立性)
9. プログラミングおよびソフトウェア開発の実践と理論には、(データ) 中心の開発方法と (操作) 中心の開発方法があります。
10. 設計手法が効果的なモジュール システムの能力を定義するかどうかを評価するために、マイヤーが提案した基準は次のうちどれですか: モジュール保護、モジュール分解可能性、モジュール連続性
課題 4:
1. (抽象化) はクラスを設計する基本的な方法であり、問題に集中して他のものを無視することができます。
2. (ポリモーフィズム) は型理論の概念であり、それらが共通のスーパークラスを持ち、関連している限り、名前は異なるクラスの複数のインスタンスを表すことができます。
3. オブジェクト指向ソフトウェアを使用してソフトウェアを開発する場合、通常、最初に基本的な属性と (メソッド) を含むクラスを設計します。その後、クラスを使用するにつれて、クラスとそのインターフェイスを補足、変更、さらには改良する必要があることがわかります
4. UML では、クラスは、クラス名、オプションの属性および操作を備えた四角形で表されます
。5サブタイプは、基本タイプを置き換える機能を備えている必要があります。このアイデアは、継承メカニズムの制約と仕様を具体化したものです。サブクラスが基本クラスを置き換えることができる場合にのみ、システムが実行時にサブクラスを認識することが保証されます。これが継承の再利用を保証するための基礎です。これが(リヒター置換)原理です。
6. (プロセス指向) 言語は主にデータ スコープ、ファイル パッケージなどを通じてデータを保護し、プログラムの他の部分が内部データやデータ構造のメンバーを自由に変更することを許可しません。
7. クラスのインターフェースは、パブリック、プロテクト、プライベート、(パッケージ) の 4 つのカテゴリにさらに分類できます。
8. 各プログラミング言語の開発ツール キットは、通常、基本的な (デバッガー) を提供します。
9. すべての (デバッガー) は、次の機能を備えています。コードをスキャンして一般的なエラーを見つけます。
10. 以下の依存関係逆転原則 (DIP) に関して、正しい記述は次のとおりです (高レベルは低レベル関数を呼び出し、低レベル モジュールは実装を担当し、高レベル モジュールはインターフェイスを定義します)
課題 5:
1. Animator クラスの (speed) 属性を使用すると、アニメーションの再生速度を取得できます
2. UI (テキスト ボタン) で一般的に使用される UI オブジェクトの種類
3. シーン ウィンドウの意味 (シーン)デザインビュー)
4 . Unity では、シーン内のゲーム オブジェクトにさまざまな階層関係を追加できます。この機能を実装するシステムは (レイヤー階層システム) です。
5. Unity では、ゲーム オブジェクト GameObject は何で構成されていますか (コンポーネント)
6. 剛体がアクティブ化されます。オブジェクトの物理的特性の主要なコンポーネントです。剛体にバインドされたゲーム オブジェクトは、Unity の物理的効果の影響を受けます。正しい
7. インスペクター ウィンドウの意味 (プロパティ)
8. トリガーとコライダーの違いはオブジェクトをブロックできるかどうかであり、コールバック関数も異なります (正しい)
9. Input.GetKey(KeyCode.S); は「long」を意味しますキーボードの S キーを押します。正解
10. シーンが完了したら、プログラムをパッケージ化 (公開) し、(ビルド設定) を選択する必要があります
11. Unity3D は、プレイヤーがインタラクティブなコンテンツを簡単に作成できる開発ツール (3D エンジン) ソフトウェアです。
12. シーンが保存されたら、プログラムをパッケージ化 (公開) し、(ビルドと実行) を選択する必要があります。
13. 新しいリソース マテリアルが Unity に追加されるたびに、エンジンはどのようなファイルを自動的に生成しますか? (メタデータ)
14. Unity3D で ALT+マウスを長押し 右クリック(ズーム)でビュー上で実行できる操作は何ですか
15. Prefab に関する次の記述のうち、間違っているものはどれですか? Prefab は特別なゲーム オブジェクトです
16. シーン エディターで直接作成できないモデルはどれですか? (メッシュ)
17. 一方のオブジェクトにコライダー Collider があり、もう一方のオブジェクトに Rigidbody がある限り、それは正常に発生します。(エラー)
18. カメラ コンポーネントのどのプロパティが視野角 (fov) を制御するか
19.if (Input.GetKey(KeyCode.W))
{ transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime); }このコード文字列の説明(wキーを押すとオブジェクトを前方に移動します)20. Unityでは指向性ライト:Directional Light、点光源:Point Light、スポットライト:Spot Light エラー 21 の 3 種類の光源が提供されています。 Rigidbody はオブジェクトを表します。 どのようなコンポーネント:(剛体)22. Unity3d の UI システム画像コンポーネントは (RawImage, Image) です。23. Unity3D にインポートするのに最適なモデル形式は (FBX) です。24. マテリアルの中間テクスチャ形式は、次のとおりです。 JPG ファイルであること √ 25. 父と息子の概念がプロパティ パネルに反映される (エラー) 26. Transform の Position プロパティは、オブジェクトの 3D 位置情報を表します √ 27. オブジェクトの位置情報を取得する方法 ( gameObject.transform.position) 28. プレハブはさまざまなシナリオで使用できますか? と同じです。はい29. Unity3d の機能は、モデル、画像、サウンド、ビデオなどのリソース ファイルを転送し、それらを処理して作成し、最後にパッケージ化して実行可能プログラムを生成することです。 正解 30. 新しいUnity プロジェクトを作成するとき、 (プロジェクトのボリュームは開発プロセス中にどんどん大きくなる可能性があるため) 31. Unity3d で一般的に使用されるプログラミング言語は C# です。32. BOX Collider コンポーネントは何と呼ばれますか? (コライダー) 33. Unity で開発できるプロジェクトには (仮想現実プロジェクト、アニメーション映画プロジェクト) 34. コライダーはトリガーのキャリアであり、トリガーはコライダーの属性にすぎません (√) 35. コライダーはコード √ 36 を通じてトリガーに変換されます。Unity3d では、システムに付属するパーティクル リソースをインポートします。シーンに直接ドラッグできる「小さな青い四角形」プレハブ オブジェクトを見つける必要があります。これのインスタンス化プレハブは何ですか? "小さな青い四角"? 37. Unity エンジンにおいて、メッシュ レンダラー コンポーネントに関する次の説明のうち、正しいものはどれですか? Mesh Renderer コンポーネントは、Mesh Filter コンポーネントからメッシュ情報を取得し、オブジェクトの Transform コンポーネントによって定義された位置に従ってそれを染色します。プロジェクト ビューで [作成] -> [アニメーター コントローラー] をクリックします。39. サウンド クリップ ファイルをプロジェクト ビューからインスペクター ビューまたはシーン ビューのゲーム オブジェクトにドラッグすると、次のコンポーネントのうちどれがゲーム オブジェクトに自動的に追加されますか? オーディオ ソース40. Sphere ゲーム オブジェクトに物理マテリアルを追加するには、次のオプションのうちどのコンポーネントのマテリアル プロパティを使用する必要がありますか? スフィアコライダー
Unity プロジェクトのコード:
コード 1: オブジェクトの動きを制御する
システムを使用する ;
System.Collectionsを使用します 。
System.Collections.Genericを使用します 。
UnityEngineを使用する 。
パブリック クラス Component1 : MonoBehaviour
{
ゲームオブジェクトオブジェクト;
public float floSpeed = 10; //移動速度を設定
public float floRotate = 100; //回転速度を設定する
// 最初のフレーム更新の前に Start が呼び出されます
void 開始()
{
//三人称視点フォロー(カメラをオブジェクトにバインド)
Camera.main.transform.SetParent( this .transform);
Camera.main.transform.localPosition =新しい Vector3(0, 3, -4);
Camera.main.transform.localEulerAngles =新しい Vector3(6, 0, 0);
#region 私の地域
//obj = GameObject.Find("Sphere");
//GameObject.Instantiate(obj,transform.position,transform.rotation);
//Mathf.Clamp();//値を [] の範囲に制限する
//UnityEngine.Random.Range(); //乱数
//Resources.Load()// リソースをロードする
// Application.Quit(); // ゲームを終了する
// Debug.Log(transform.tag); // タグ付け
// Debug.Log(transform.position); //位置
// Debug.Log(transform.rotation); // 回転
// Debug.Log(transform.eulerAngles); // オイラー角
// Debug.Log(transform.localEulerAngles); // ローカルオイラー角
// Debug.Log(transform.localPosition); // ローカル位置
// Debug.Log(transform.localRotation); // ローカルローテーション
// Debug.Log(transform.localScale); // ローカル スケーリング
// Debug.Log(transform.parent); // 親オブジェクト
// Debug.Log(transform.childCount); // 子オブジェクトの数
// Debug.Log(transform.up); //上記
// Debug.Log(transform.forward); //前方
// Debug.Log(transform.right); //right
//}
Update はフレームごとに 1 回呼び出されます
//{ //オブジェクトを移動する最初の方法
//transform.position += new Vector3(0, 0.01f, 0) * Time.deltaTime;
// //オブジェクトを移動する 2 番目の方法
//transform.Translate(Vector3.up*floSpeed*Time.deltaTime);
// //一般的な変換方法
//transform.Rotate(0,floRotate * Time.deltaTime,0); //回転
//transform.RotateAround(obj.transform.position, Vector3.up, floRotate * Time.deltaTime); //球の周りを回転します
//transform.LookAt(Camera.main.transform); //常に正面を向いて
#エンドリージョン
}
void 更新()
{
#region 私の地域
キーボード入力
//Input.GetKey(KeyCode.Space); //キーを押したままにする
//Input.GetKeyDown(KeyCode.Space); //キーを押します
//Input.GetKeyUp(KeyCode.Space); //キーを持ち上げます
//マウス入力
//Input.GetMouseButton(0);
//Input.GetMouseButtonDown(0);
//Input.GetMouseButtonUp(0);
//Intput.mousePosition;
//仮想入力
//Input.GetAxis("horizontal"); //FLOAT 値 -1 ~ 1
//Input.GetAxis("Vertical"); //FLOAT 値 -1 ~ 1
//Input.GetAxisRaw("horizontal"); //FLOAT 値 -1 ~ 0 ~ 1
//Input.GetAxisRaw("Vertical"); //FLOAT 値 -1 ~ 0 ~ 1
//Input.GetAxis("Mouse X"); //マウスは水平に移動します
//Input.GetAxis("Mouse Y"); //マウスは垂直に移動します
#エンドリージョン
move(); //オブジェクトの移動を制御する関数
look(); //オブジェクトの回転を制御する関数
}
private void look()
{
float y = Input.GetAxis( "Mouse X" ) * floRotate * Time.deltaTime;
変換.Rotate(transform.up, y);
}
private void move()
{
float x =Input.GetAxis( "水平" ) *floSpeed* Time.deltaTime;
float z =Input.GetAxis( "Vertical" ) *floSpeed* Time.deltaTime;
変換.Translate(x, 0, z);
//Input.GetKeyDown(KeyCode.Space); //スペースキーを押す
// Input.GetKeyUp(KeyCode.Space); // スペース キーを離します
// 新しい NotImplementedException() をスローします。
}
}
コード 2: オブジェクトの動き、剛体の衝突と光線の戻りを制御する
/*
Unity の物理エンジンとコンポーネント
1.キャラクターコントローラー
move(); は重力の影響を受けないため、地面を決定するために isGround が必要であり、deltaTime を乗算します。
SimpleMove(); 重力の影響を受けるため、地面を判断したりdeltaTimeを乗算する必要はありません
2. コライダー コライダー
衝突トリガー条件: 両方に衝突コンポーネントがあり、少なくとも 1 つには剛体があります。
3. リジッドボディ
4.レイ
*/
システムを使用する ;
System.Collectionsを使用します 。
System.Collections.Genericを使用します 。
UnityEngineを使用する 。
パブリック クラス Component2 : MonoBehaviour
{
//ゲームオブジェクトオブジェクト;
パブリック フロート floSpeed = 30;
パブリック フロート floRotate = 0;
パブリック ゲームオブジェクトオブジェクト;
//キャラクターコントローラー cc;
リジッドボディ rd;
// 最初のフレーム更新の前に Start が呼び出されます
void 開始()
{
rd = GetComponent<Rigidbody>();
//cc = GetComponent<CharacterController>();
//rd.AddForce(new Vector3());
//rd.velocity = new Vector3(); //初速度
}
// Update はフレームごとに 1 回呼び出されます
void 更新()
{
// learnRay();
//float x = Input.GetAxis("水平") * floSpeed;
//float z = Input.GetAxis("Vertical") * floSpeed ;
//transform.Translate(x, 0, z);
//キャラクターの移動方法
//cc.Move(new Vector3(x, 0, z));
//cc.isGrounded; //地面にあるかどうかを判断する
//cc.SimpleMove(new Vector3(x, 0, z));
//ローカル座標系
//cc.SimpleMove(transform.forward * z +transform.right * x);
}
//光線
private void learnRay()
{
if (Input.GetMouseButtonDown(0)) //マウスの左ボタンをクリックしたとき
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); カメラからマウス クリックの位置までの光線を作成します。
if (Physics.Raycast(ray, out RaycastHit hitInfo))
{
//float x = hitInfo.point.x; //オブジェクトをクリックした位置にテレポートします
//float z = hitInfo.point.z;
//transform.Translate(x, 0, z);
Debug.Log(hitInfo.transform.name); //クリック位置の名前を返す
Debug.Log(hitInfo.point); //クリック位置の座標を返す
//hitInfo.point;
GameObject shell = Instantiate(obj,transform.position,transform.rotation); //オブジェクトのクローンを作成します
shell.GetComponent<Rigidbody>().velocity = Vector3.Normalize(hitInfo.point -transform.position); ;
}
}
}
private void OnTriggerEnter (コライダーその他)
{
Debug.Log( "ちょうど遭遇しました" );
}
private void OnTriggerStay (Collider 他)
{
Debug.Log(other.transform.name);
}
private void OnTriggerExit (コライダーその他)
{
rd.AddForce(transform.up * 500);
Debug.Log( "衝突は終了しました" );
}
}
プロジェクトコード 3: 音楽のインポート、音量の制御、曲の切り替えなど。
システムを使用する ;
System.Collectionsを使用します 。
System.Collections.Genericを使用します 。
UnityEngineを使用する 。
パブリック クラス Component3 : MonoBehaviour
{
AudioSource の広告。
オーディオクリップと;
オーディオクリップ ac1;
// 最初のフレーム更新の前に Start が呼び出されます
void 開始()
{
ads = GetComponent<AudioSource>();
ac = Resources.Load<AudioClip>( "AudioClips/爱在BC-Jay Chou" ) as AudioClip;
ac1 = Resources.Load<AudioClip>( "AudioClips/クリック音効果" ) as AudioClip;
//ads.clip = ac;
//ads.Play(); //再生
//ads.Pause(); //一時停止
//ads.UnPause();//再生を続ける
//ads.PlayOneShot()//1 回プレイ
//ads.playOnAwake;//起床時に再生
//ads.volume = 1.0f; //音量
//ads.loop;//ループ
//ads.isPlaying = false;//再生するかどうか
//ads.clip;//サウンドクリップ
}
// Update はフレームごとに 1 回呼び出されます
void 更新()
{
clickAudio();
変更ボリューム();
音楽を再生();
ChangeMusic();
}
private void clickAudio()
{
if (Input.GetMouseButtonDown(0))
{
ac1 = Resources.Load<AudioClip>( "AudioClips/クリック音効果" ) as AudioClip;
}
}
private void changeMusic() //TAB キーを押して曲を切り替えます
{
if (Input.GetKey(KeyCode.Tab))
{
//ads.clip = acs[j];
//ads.pa
ac = Resources.Load<AudioClip>( "AudioClips/爱在BC-Jay Chou" ) as AudioClip;
}
}
private void playMusic() //B キーを押して音楽を一時停止し、再生します
{
if (Input.GetKey(KeyCode.B))
{
if (ads.isPlaying)
{
ads.Pause();
}
それ以外
{
ads.Play();
}
}
}
private void changeVolume() //Z キーと X キーを使用して音楽の音量を調整します
{
if (Input.GetKey(KeyCode.Z))
{
広告のボリューム--;
else if (Input.GetKey(KeyCode.X ) )
{
広告.ボリューム++;
}
}
}
プロジェクト コード 4: アニメーションのトリガー
System.Collectionsを使用します 。
System.Collections.Genericを使用します 。
UnityEngineを使用する 。
パブリック クラス Component4 : MonoBehaviour
{
アニメーターです。
// 最初のフレーム更新の前に Start が呼び出されます
void 開始()
{
StartCoroutine(learnCoroutine());
//StopAllCoroutines();
//StopCoroutines();
}
// Update はフレームごとに 1 回呼び出されます
void 更新()
{
if (Input.GetKey(KeyCode.F)) //F キーを押して、物を拾うアクションを実行します。
{
am.SetTrigger( "pickup" ); //トリガーを設定
}
if (Input.GetKey(KeyCode.Space)) //スペースバーを押してジャンプアクションを実行します
{
am.SetTrigger( "jump-float" ); //トリガーを設定
}
}
//Unity 内のコルーチン、yield return キーワードを使用する
IEnumerator learnCoroutine()
{ while ( true )
{
yield return new WaitForSeconds(1);
利回りは nullを返します 。
}
}
}
プロジェクト コード 5: UI インターフェイス
System.Collectionsを使用します 。
System.Collections.Genericを使用します 。
UnityEngineを使用する 。
TMProを使用 ; //新しいバージョン
using UnityEngine.UI; //古い GUI 名前空間
システムを使用する ;
/*
UIシステムを学ぶ
*/
パブリック クラス Component5 : MonoBehaviour
{
//GUI コンポーネント オブジェクトに値を割り当てる最初の方法: public+external 割り当て
公開 画像画像;
//GUI コンポーネント オブジェクトに値を割り当てる 2 番目の方法: コンポーネントを取得するスクリプト コントロール
RawImage 生画像;
public Text t; //テキストコンポーネントを作成
public Button button; //ボタンコンポーネントを作成
public InputField inputField; //入力ボックス
public Toggle toggle; //ラジオボタン
public Slider slider; //スライダーバー
パブリック Scrollbar スクロールバー;
public Dropdown ドロップダウン; //ドロップダウン ボックス
// 最初のフレーム更新の前に Start が呼び出されます
void 開始()
{
//イメージイメージ
//image.sprite = Resolution.Load();
//元の画像
rawImage = GetComponent<RawImage>();
rawImage.texture = Resources.Load<Texture>( "Assets/wallhaven-d66zvm.png" )テクスチャとして ;
t.text = "aaa" ;
//ボタン
//イベントを監視するためのメソッド 1: パブリック メソッド + 外部呼び出し
//方法 2: AddListener
button.onClick.AddListener(ClickButton);
//トグル
toggle.onValueChanged.AddListener(ClickToggle);
//
slider.onValueChanged.AddListener(ClickSlider);
スクロールバー.onValueChanged.AddListener(ClickSlider);
//ドロップダウンリスト
InitDropdown();
ドロップダウン.onValueChanged.AddListener(ClickDropdown);
}
プライベート void InitDropdown()
{
ドロップダウン.オプション.Clear();
//リスト項目を作成する
Dropdown.OptionData op1 =新しい Dropdown.OptionData();
op1.text = "イオニア" ;
ドロップダウン.オプション.追加(op1);
Dropdown.OptionData op2 =新しい Dropdown.OptionData();
op1.text = "デマーシア" ;
ドロップダウン.オプション.追加(op2);
}
void ClickButton() {
if (inputField.text == "123" )
{
Debug.Log( "ログイン成功" );
}
それ以外
{
Debug.Log( "ログインに失敗しました" );
}
}
void ClickToggle( bool isOn) { //トグルラジオボタンのチェックに基づいてミュートします
if (isOn)
{
Debug.Log( "ミュート" );
}
それ以外
{
Debug.Log( "プレイを続ける" );
}
}
void ClickSlider( float 値)
{
if (値<0.3)
{
Debug.Log( "" );
}
}
void ClickDropdown( int 値)
{
スイッチ (値)
{
ケース 0:
Debug.Log( "Ionia にログイン" );
壊す;
ケース 1:
Debug.Log( "デマーシアにログイン" );
壊す;
}
}
プロジェクト コード 6: マウスを画像に移動するかクリックすると、画像の色が変わります。
/*
ユニティイベントシステム EvenSystems
IPointer...ハンドラ
I...ドラッグハンドラ
*/
System.Collectionsを使用します 。
System.Collections.Genericを使用します 。
using UnityEngine.EventSystems; //イベント システムの名前空間
UnityEngineを使用する 。
UnityEngine.UIを使用します 。
TMProを使用する 。
パブリック クラス Component6 : MonoBehaviour、IPointerClickHandler、IDragHandler、IPointerEnterHandler、IPointerExitHandler
{
public void OnDrag(PointerEventData イベントデータ)
{
変換.位置 = 入力.マウス位置;
//transform.position = イベントデータ.position;
}
public void OnPointerClick(PointerEventData イベントデータ)
{
Debug.Log( "画像をクリックしてください" );
}
public void OnPointerEnter(PointerEventData イベントデータ)
{
GetComponent<Image>().color = Color.green;
}
public void OnPointerExit(PointerEventData イベントデータ)
{
GetComponent<Image>().color = Color.white;
}
}
プロジェクト コード 7: スライダーで音量を変更し、ラジオ ボタンでミュートを制御します
System.Collectionsを使用します 。
System.Collections.Genericを使用します 。
UnityEngineを使用する 。
TMProを使用 ; //新しいバージョン
using UnityEngine.UI; //古い GUI 名前空間
システムを使用する ;
パブリック クラス Component7 : MonoBehaviour
{
public Button button; //コンポーネントを作成
パブリック トグルトグル;
パブリック Slider スライダー。
AudioSource の広告。
// 最初のフレーム更新の前に Start が呼び出されます
void 開始()
{
ads = GetComponent<AudioSource>();
slider.onValueChanged.AddListener(ChangeVolume); //レスポンスを設定します
toggle.onValueChanged.AddListener(PlayMusic);
}
private void PlayMusic( bool arg0) //ラジオボタンがチェックされているかどうかを確認して実行
{
if (arg0)
{
ads.Pause();
}
それ以外
{
ads.Play();
}
}
private void ChangeVolume( float arg0) //スライダーバーの値で音量を変更します
{
ads.volume = arg0;
}
}
プロジェクトコード 8: データベース接続の実装
System.Collectionsを使用します 。
System.Collections.Genericを使用します 。
UnityEngineを使用する 。
using MySql.Data.MySqlClient; //mysql コネクタの名前空間
システムを使用する ;
パブリック クラス Component8 : MonoBehaviour
{ //mysqlコネクタ
MySqlConnection sqlConnection;
string strConn = "サーバー=ローカルホスト;ポート=3306;ユーザー名=root;パスワード=root;データベース=2113042122wxh;文字セット=utf8;" ;
// 最初のフレーム更新の前に Start が呼び出されます
void 開始()
{
//データベースを開く
試す
{
sqlConnection =新しい MySqlConnection(strConn);
sqlConnection.Open();
Debug.Log(sqlConnection.State);
//挿入を増やす
挿入データ();
//削除削除
interdelete();
//更新内容の変更
insterUpdate();
//SelectData をチェックする
insterSelectData();
}
catch (System.Exception)
{
投げる;
}
ついに
{
if (sqlConnection.State .ToString() == "Open" ) {
sqlConnection.Close();
Debug.Log(sqlConnection.State);
}
}
}
private void insterSelectData()
{
//最初のステップは SQL ステートメントを記述することです
string strSql = "select * from students where name = '';" ;
// 2 番目のステップでは、MySQLcommand オブジェクトを作成します。
using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection))
{
// 3 番目のステップでは ExecuteReader() を実行します
using (MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader()) ;
// 4 番目のステップでは、返された MysqlDataReader オブジェクトからデータを読み取ります
}
}
private int insterUpdate()
{
//最初のステップは SQL ステートメントを記述することです
string strSql = "学生セットを更新 name='Zhang Mazi' where name = 'Huang Silang';" ;
// 2 番目のステップでは、MySQLcommand オブジェクトを作成します。
using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection))
{
// 3 番目のステップでは ExecuteNonQuery() メソッドを実行します
mySqlCommand.ExecuteNonQuery()を返します。
}
}
private int interdelete()
{
//最初のステップは SQL ステートメントを記述することです
string strSql = "name='张麻子';の生徒から削除します。;
// 2 番目のステップでは、MySQLcommand オブジェクトを作成します。
using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection))
{
// 3 番目のステップでは ExecuteNonQuery() メソッドを実行します
mySqlCommand.ExecuteNonQuery()を返します。
}
}
private int insterData()
{
//最初のステップは SQL ステートメントを記述することです
string strSql = "学生(Sname,Sage)に挿入 value('张麻子',25);" ;
// 2 番目のステップでは、MySQLcommand オブジェクトを作成します。
using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection))
{
// 3 番目のステップでは ExecuteNonQuery() メソッドを実行します
mySqlCommand.ExecuteNonQuery()を返します。
}
}
// Update はフレームごとに 1 回呼び出されます
プロジェクトコード9:ログイン登録機能の実装
/*
ログイン登録機能の実装
ログイン: 入力ボックスの文字列を取得します ---> 接続してデータベースを開きます ---> ユーザー名とパスワードを見つけます
Y = --->パスワードを比較 -->Y=-->データベースを閉じる -->ログイン成功
Y = --->パスワードを比較 --> N= --> データベースを閉じる ---> ログインに失敗しました
N = --->データベースを閉じる --->ログインに失敗しました
登録: 入力ボックスの文字列を取得します ---> 接続してデータベースを開きます ---> ユーザー名とパスワードを見つけます
Y =>データベースを閉じる--->登録に失敗しました
N => ユーザー名とパスワードを追加 ---> データベースを閉じる ---> 登録が成功しました
壊す:
1. データベースに接続して開きます
2. ユーザー名とパスワードを見つける
3. データベースを閉じる
4. パスワードを比較する
5.ユーザー名とパスワードを追加します
インターフェース: ログイン 1234 レジスタ 1235
オブジェクト:GUIオブジェクト入力ボックス*2ボタン*2、テキスト
データベース:MySQLConnection、..コマンド...リーダー
弦
*/
System.Collectionsを使用します 。
System.Collections.Genericを使用します 。
UnityEngineを使用する 。
UnityEngine.UIを使用します 。
MySql.Data.MySqlClientを使用します 。
システムを使用する ;
UnityEngine.SceneManagementを使用します。
パブリック クラス Component9 : MonoBehaviour
{
パブリック 入力フィールド inputField1;
パブリック 入力フィールド入力フィールド2;
パブリック ボタン button1;
パブリック ボタンボタン2;
公開 テキストヒント;
MySqlConnection sqlConnection;
string strConn = "サーバー=ローカルホスト;ポート=3306;ユーザー名=root;パスワード=root;データベース=2113042122wxh;文字セット=utf8;" ;
文字列 ユーザー名;
文字列 パスワード。
文字列 ユーザー名DB;
文字列 パスワードDB;
// 最初のフレーム更新の前に Start が呼び出されます
void 開始()
{
button1.onClick.AddListener(ログイン);
}
public void Login()
{
ユーザー名 = inputField1.text;
パスワード = inputField2.text;
ConnectDB();
SelectDB(ユーザー名);
CloseDB();
CompareDB(パスワード);
}
private void CompareDB( string password) //ユーザー名とパスワードをチェックするための比較関数
{
if (ユーザー名 == ユーザー名DB&&パスワード == パスワードDB)
{
SceneManager.LoadScene(1);
}
それ以外
{
Tip.text = "ログインに失敗しました" ;
}
}
private void CloseDB() //データベースを閉じる
{
if (sqlConnection.State.ToString() == "Open" )
{
sqlConnection.Close();
Debug.Log(sqlConnection.State);
}
}
private Boolean SelectDB(String n) //データベースのクエリ
{
string strSql = "select * from tb_user where username = '" + n + "';" ;
using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection))
{
//ExecuteNonQuery()メソッドを実行する
using (MySqlDataReader リーダー = mySqlCommand.ExecuteReader())
{
while (reader.Read())
{
ユーザー名DB = リーダー.GetString(1);
パスワードDB = リーダー.GetString(2);
trueを返します。
}
}
}
falseを返します。
}
public void ConnectDB()
{
試す
{
sqlConnection =新しい MySqlConnection(strConn);
sqlConnection.Open();
Debug.Log(sqlConnection.State);
}
キャッチ (例外)
{
投げる;
}
}
public void Register() //登録関数
{
ユーザー名 = inputField1.text;
パスワード = inputField2.text;
//開いているデータベースに接続します
ConnectDB();
//ユーザー名/パスワードを検索
if (SelectDB(ユーザー名) == true )
{
Tip.text = "ユーザーが存在します" ;
}
それ以外
{
if (AddDB(ユーザー名, パスワード) == 1)
{
Tip.text = "正常に追加されました" ;
}
それ以外
{
Tip.text = "追加に失敗しました" ;
}
}
CloseDB();
}
private int AddDB( string n, string p)
{
//SQL文を書く
string strSql = "tb_user(ユーザー名,パスワード) 値に挿入 ('" + n + "','" + p + "')" ;
//MySQLオブジェクトを作成する
using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection))
{
//ExecuteNonQuery()メソッドを実行する
mySqlCommand.ExecuteNonQuery();
}
1を返します 。
}
}