Skip to content

Commit

Permalink
FpsCounter実装
Browse files Browse the repository at this point in the history
  • Loading branch information
amp-3 committed Sep 22, 2024
1 parent cebb67a commit 8abac66
Show file tree
Hide file tree
Showing 7 changed files with 257 additions and 1 deletion.
149 changes: 149 additions & 0 deletions Assets/Scenes/OptimizeDistance.unity
Original file line number Diff line number Diff line change
Expand Up @@ -973,6 +973,140 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1021783067
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1021783068}
- component: {fileID: 1021783070}
- component: {fileID: 1021783069}
m_Layer: 5
m_Name: FpsCounter_GUIText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1021783068
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1021783067}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1385529798}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 113.23, y: -25}
m_SizeDelta: {x: 181.68, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1021783069
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1021783067}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: New Text
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &1021783070
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1021783067}
m_CullTransparentMesh: 1
--- !u!1 &1141756712
GameObject:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -1153,6 +1287,7 @@ GameObject:
m_Component:
- component: {fileID: 1385529798}
- component: {fileID: 1385529799}
- component: {fileID: 1385529800}
m_Layer: 5
m_Name: Area
m_TagString: Untagged
Expand All @@ -1174,6 +1309,7 @@ RectTransform:
m_Children:
- {fileID: 667576811}
- {fileID: 58342063}
- {fileID: 1021783068}
m_Father: {fileID: 2100999106}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
Expand Down Expand Up @@ -1201,6 +1337,19 @@ MonoBehaviour:
- {fileID: 1509058479}
- {fileID: 1814663957}
- {fileID: 800785136}
--- !u!114 &1385529800
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1385529797}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a2837ad08e3be6f4ea82e074b4cc711c, type: 3}
m_Name:
m_EditorClassIdentifier:
fpsCounter_GUIText: {fileID: 1021783069}
--- !u!1001 &1509058477
PrefabInstance:
m_ObjectHideFlags: 0
Expand Down
8 changes: 8 additions & 0 deletions Assets/Script/FpsCounter.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

39 changes: 39 additions & 0 deletions Assets/Script/FpsCounter/FpsCounter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FpsCounter
{
// フレーム数をカウント
private int frameCount = 0;
// 計測開始時間
private float elapsedTime = 0f;
// FPS値
private float fps = 0f;
// 更新頻度(FPSを計算する間隔)
public float updateInterval = 0.5f;

public void OnUpdate()
{
// 経過時間をカウント
elapsedTime += Time.deltaTime;
frameCount++;

// 一定間隔でFPSを計算
if (elapsedTime >= updateInterval)
{
// FPSを計算
fps = frameCount / elapsedTime;

// カウンタをリセット
frameCount = 0;
elapsedTime = 0f;
}
}

// FPSを取得するメソッド
public float GetFps()
{
return fps;
}
}
11 changes: 11 additions & 0 deletions Assets/Script/FpsCounter/FpsCounter.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 35 additions & 0 deletions Assets/Script/FpsCounter/FpsCounterUiPresenter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UniRx;
using UnityEngine;

public class FpsCounterUiPresenter : MonoBehaviour
{
[SerializeField]
private TMP_Text fpsCounter_GUIText = null;

private FpsCounter fpsCounter = new FpsCounter();
private IDisposable disposable = null;

private float latestViewFps = -1f;

private void Start()
{
disposable = Observable.EveryUpdate()
.Subscribe(_ =>
{
fpsCounter.OnUpdate();

float fps = fpsCounter.GetFps();

if (fps != latestViewFps)
{
fpsCounter_GUIText.text = fps.ToString("F1");

latestViewFps = fps;
}
});
}
}
11 changes: 11 additions & 0 deletions Assets/Script/FpsCounter/FpsCounterUiPresenter.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion ProjectSettings/EditorBuildSettings.asset
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,8 @@
EditorBuildSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Scenes: []
m_Scenes:
- enabled: 1
path: Assets/Scenes/OptimizeDistance.unity
guid: 3274b02a62c69324fb675b0e7f79fa1b
m_configObjects: {}

0 comments on commit 8abac66

Please sign in to comment.