Skip to content

Commit

Permalink
Merge pull request #85 from nowsprinting/fix/document_expression
Browse files Browse the repository at this point in the history
Fix ambiguous expressions and spelling variations
  • Loading branch information
bo40 authored Oct 28, 2024
2 parents a80f516 + 86627b7 commit 005b168
Show file tree
Hide file tree
Showing 8 changed files with 43 additions and 41 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2023 DeNA Co., Ltd.
// Copyright (c) 2023-2024 DeNA Co., Ltd.
// This software is released under the MIT License.

using UnityEditor;
Expand All @@ -8,19 +8,19 @@
namespace DeNA.Anjin.Editor.ContextMenu
{
/// <summary>
/// Create title own assembly
/// Create game title specific assembly
/// </summary>
public static class CreateTitleOwnAssembly
public static class CreateGameTitleSpecificAssembly
{
/// <summary>
/// Create title own assembly
/// Create game title specific assembly
/// </summary>
[MenuItem("Assets/Create/Anjin/Title Own Assembly Folder")]
public static void CreateTitleOwnAssemblyMenuItem()
[MenuItem("Assets/Create/Anjin/Game Title Specific Assembly Folder")]
public static void CreateGameTitleSpecificAssemblyMenuItem()
{
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(
0,
ScriptableObject.CreateInstance<DoCreateTitleOwnAssembly>(),
ScriptableObject.CreateInstance<DoCreateGameTitleSpecificAssembly>(),
"New Folder",
EditorGUIUtility.IconContent(EditorResources.folderIconName).image as Texture2D,
(string)null);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
// Copyright (c) 2023 DeNA Co., Ltd.
// Copyright (c) 2023-2024 DeNA Co., Ltd.
// This software is released under the MIT License.

using System.IO;
using System.Reflection;
using DeNA.Anjin.Editor.Definitions;
using UnityEditor;
using UnityEditor.ProjectWindowCallback;
#if !UNITY_6000_0_OR_NEWER
using System.Reflection;
using UnityEngine;
#endif

namespace DeNA.Anjin.Editor.ContextMenu
{
/// <inheritdoc/>
public class DoCreateTitleOwnAssembly : EndNameEditAction
public class DoCreateGameTitleSpecificAssembly : EndNameEditAction
{
/// <inheritdoc/>
public override void Action(int instanceId, string pathName, string resourceFile)
Expand Down
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ It consists of the following two elements.
2. An Agent that realizes auto-execution closed to the Scene

Agents are small, isolated C# scripts that perform specific operations, such as playback of UI operations or monkey tests.
In addition to those provided built-in, game title-specific ones can be implemented and used.
In addition to the built-in ones, you can implement and use ones specific to your game title.

Click [日本語](./README_ja.md) for the Japanese page if you need.

Expand Down Expand Up @@ -70,7 +70,7 @@ There is no need to track it, so we recommend adding it to your project's .gitig

## Settings for game title

After installing the UPM package in the game title project, configure and implement the following.
After installing the UPM package in the game title Unity project, configure and implement the following.

- Generate and configure the AutopilotSettings.asset file
- Generate and configure the .asset file for the Agent to be used
Expand Down Expand Up @@ -243,7 +243,7 @@ public async Task LaunchAutopilotInTest()

## Built-in Agents

The following Agent types are provided. These can be used as they are, or project-specific Agents can be implemented and used.
The following Agent types are provided. These can be used as they are, or game-title-specific custom Agents can be implemented and used.


### UGUIMonkeyAgent
Expand Down Expand Up @@ -391,7 +391,7 @@ This can be accomplished with `ParallelCompositeAgent`, but it is easier to set

## Built-in Logger

The following Logger types are provided. These can be used as they are, or project-specific Loggers can be implemented and used.
The following Logger types are provided. These can be used as they are, or game-title-specific custom Loggers can be implemented and used.


### Composite Logger
Expand Down Expand Up @@ -433,7 +433,7 @@ The instance of this Logger (.asset file) can have the following settings.

## Built-in Reporter

The following Reporter types are provided. These can be used as they are, or project-specific Reporters can be implemented and used.
The following Reporter types are provided. These can be used as they are, or game-title-specific custom Reporters can be implemented and used.


### Composite Reporter
Expand Down Expand Up @@ -464,13 +464,13 @@ The instance of this Reporter (.asset file) can have the following settings.



## Implementation of game title-specific code
## Implementation of game-title-specific

Game title specific Agents and initialization code must be avoided in the release build.
Game-title-specific custom Agents and initialization code must be avoided in the release build.
Create a unique assembly and turn off "Auto Referenced", and set the "Define Constraints" to `UNITY_INCLUDE_TESTS || DENA_AUTOPILOT_ENABLE`.

This asmdef and its storage folder can be created by opening the context menu anywhere in the Project window and selecting
**Create > Anjin > Title Own Assembly Folder**.
**Create > Anjin > Game Title Specific Assembly Folder**.


### Custom Agent
Expand All @@ -486,9 +486,9 @@ The following fields defined in `AbstractAgent` are available. Each instance is
Note that it is convenient to set the `[CreateAssetMenu]` attribute to create an instance from the context menu.


### Game title-specific pre-processing
### Game-title-specific initialization process

If your title requires its own initialization process, add the `InitializeOnLaunchAutopilot` attribute to the `static` method that does the initialization.
If your game title requires its specific initialization process, add the `InitializeOnLaunchAutopilot` attribute to the `static` method that does the initialization.
An added method is called from the autopilot launch process.

```csharp
Expand All @@ -503,7 +503,7 @@ Async methods are also supported.

```csharp
[InitializeOnLaunchAutopilot]
private static async UniTask InitializeOnLaunchAutopilotMethod()
private static async UniTask InitializeOnLaunchAutopilotMethodAsync()
{
// initialize code for your game.
}
Expand Down
34 changes: 17 additions & 17 deletions README_ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,11 @@ Anjinを起動すると、次のファイルが自動生成されます。

## ゲームタイトルごとの設定

ゲームタイトルのプロジェクトにUPMパッケージをインストール後、以下の設定・実装を行います。
ゲームタイトルのUnityプロジェクトにUPMパッケージをインストール後、以下の設定・実装を行います。

- AutopilotSettings.assetファイルを生成、設定
- 使用するAgentの.assetファイルを生成・設定
- 必要に応じて専用Agentの実装
- 必要に応じてカスタムAgentの実装
- 必要に応じて初期化処理の実装

> [!NOTE]
Expand Down Expand Up @@ -115,7 +115,7 @@ v1.0.0時点では `EmergencyExitAgent` の使用を想定しています。

<dl>
<dt>Lifespan</dt><dd>実行時間上限を秒で指定します。デフォルトは300秒、0を指定すると無制限に動作します</dd>
<dt>Random Seed</dt><dd>疑似乱数発生器に与えるシードを固定したいときに指定します(省略可)。なお、これはオートパイロットの使用する疑似乱数発生器に関する設定であり、ゲーム本体の疑似乱数発生器シードを固定するにはタイトル側での実装が必要です。</dd>
<dt>Random Seed</dt><dd>疑似乱数発生器に与えるシードを固定したいときに指定します(省略可)。なお、これはオートパイロットの使用する疑似乱数発生器に関する設定であり、ゲーム本体の疑似乱数発生器シードを固定するにはゲームタイトル側での実装が必要です。</dd>
<dt>Time Scale</dt><dd>Time.timeScaleを指定します。デフォルトは1.0</dd>
<dt>JUnit Report Path</dt><dd>JUnit形式のレポートファイル出力パスを指定します(省略可)。オートパイロット実行の成否は、Unityエディターの終了コードでなくこのファイルを見て判断するのが確実です。errors, failuresともに0件であれば正常終了と判断できます。</dd>
<dt>Logger</dt><dd>オートパイロットが使用するロガー指定します。省略時は <code>Debug.unityLogger</code> がデフォルトとして使用されます</dd>
Expand All @@ -137,7 +137,7 @@ v1.0.0時点では `EmergencyExitAgent` の使用を想定しています。

### Agent設定ファイル(.asset)の生成

ビルトインのAgentを使用する場合でも、タイトル独自Agentを実装した場合でも、Unityエディタでそのインスタンス(.assetファイル)を生成する必要があります。
ビルトインのAgentを使用する場合でも、カスタムAgentを実装した場合でも、Unityエディタでそのインスタンス(.assetファイル)を生成する必要があります。

インスタンスは、UnityエディタのProjectウィンドウで右クリックしてコンテキストメニューを開き、
**Create > Anjin > Agent名**
Expand Down Expand Up @@ -245,7 +245,7 @@ public async Task LaunchAutopilotInTest()

## ビルトインAgent

以下のAgentが用意されています。これらをそのまま使用することも、プロジェクト独自のAgentを実装して使用することも可能です
以下のAgentが用意されています。これらをそのまま使用することも、ゲームタイトル固有のカスタムAgentを実装して使用することも可能です


### UGUIMonkeyAgent
Expand Down Expand Up @@ -395,7 +395,7 @@ SerialCompositeAgentと組み合わせることで、シナリオを何周もし

## ビルトイン ロガー

以下のロガータイプが用意されています。これらをそのまま使用することも、プロジェクト独自のロガーを実装して使用することも可能です
以下のロガータイプが用意されています。これらをそのまま使用することも、ゲームタイトル固有のカスタムロガーを実装して使用することも可能です


### Composite Logger
Expand Down Expand Up @@ -437,7 +437,7 @@ SerialCompositeAgentと組み合わせることで、シナリオを何周もし

## ビルトイン レポータ

以下のレポータタイプが用意されています。これらをそのまま使用することも、プロジェクト独自のレポータを実装して使用することも可能です
以下のレポータタイプが用意されています。これらをそのまま使用することも、ゲームタイトル固有のカスタムレポータを実装して使用することも可能です


### Composite Reporter
Expand Down Expand Up @@ -466,19 +466,19 @@ Slackにレポート送信するレポータです。



## ゲームタイトル独自処理の実装
## ゲームタイトル固有の実装

ゲームタイトル固有のAgent等を実装する場合、リリースビルドへの混入を避けるため、専用のアセンブリに分けることをおすすめします。
ゲームタイトル固有のカスタムAgentや初期化処理を実装する場合、リリースビルドへの混入を避けるため、専用のアセンブリに分けることをおすすめします。
Assembly Definition File (asmdef) のAuto Referencedをoff、Define Constraintsに `UNITY_INCLUDE_TESTS || DENA_AUTOPILOT_ENABLE` を設定することで、リリースビルドからは除外できます。

このasmdef及び格納フォルダは、Projectウィンドウの任意の場所でコンテキストメニューを開き
**Create > Anjin > Title Own Assembly Folder**
**Create > Anjin > Game Title Specific Assembly Folder**
を選択することで生成できます。


### タイトル独自Agent
### カスタムAgent

タイトル独自のAgentは`Anjin.Agents.AbstractAgent` を継承して作ります。
カスタムAgentは`Anjin.Agents.AbstractAgent` を継承して作ります。
メソッド `UniTask Run(CancellationToken)` に、Agentが実行する処理を実装するだけです。

`AbstractAgent` に定義された以下のフィールドを利用できます。各インスタンスは `Run` メソッド呼び出し前に設定されています。
Expand All @@ -489,26 +489,26 @@ Assembly Definition File (asmdef) のAuto Referencedをoff、Define Constraints
なお、`[CreateAssetMenu]`アトリビュートを設定しておくとコンテキストメニューからインスタンス生成ができて便利です。


### タイトル独自事前処理
### ゲームタイトル固有の初期化処理

タイトル独自の初期化処理が必要な場合、初期化を行なう `static` メソッドに `InitializeOnLaunchAutopilot` 属性を付与してください。
ゲームタイトル固有の初期化処理が必要な場合、初期化を行なう `static` メソッドに `InitializeOnLaunchAutopilot` 属性を付与してください。
オートパイロットの起動処理の中でメソッドを呼び出します。

```csharp
[InitializeOnLaunchAutopilot]
public static void InitializeOnLaunchAutopilotMethod()
{
// プロジェクト固有の初期化処理
// ゲームタイトル固有の初期化処理
}
```

非同期メソッドにも対応しています。

```csharp
[InitializeOnLaunchAutopilot]
private static async UniTask InitializeOnLaunchAutopilotMethod()
private static async UniTask InitializeOnLaunchAutopilotMethodAsync()
{
// プロジェクト固有の初期化処理
// ゲームタイトル固有の初期化処理
}
```

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2023 DeNA Co., Ltd.
// Copyright (c) 2023-2024 DeNA Co., Ltd.
// This software is released under the MIT License.

using System.Collections;
Expand All @@ -12,7 +12,7 @@

namespace DeNA.Anjin.Editor.ContextMenu
{
public class DoCreateTitleOwnAssemblyTest
public class DoCreateGameTitleSpecificAssemblyTest
{
private const string AssemblyName = "TestOutputOfAnjin";
private readonly string _path = Path.Combine("Assets", AssemblyName);
Expand Down Expand Up @@ -51,7 +51,7 @@ public IEnumerator TearDown()
[Test]
public void Action_CreatedRuntimeFolderContainingAsmdef()
{
var sut = ScriptableObject.CreateInstance<DoCreateTitleOwnAssembly>();
var sut = ScriptableObject.CreateInstance<DoCreateGameTitleSpecificAssembly>();
sut.Action(0, _path, null);

var asmdefPath = Path.Combine(_path, $"{AssemblyName}.asmdef");
Expand Down

0 comments on commit 005b168

Please sign in to comment.