やまめも

【 ゲーム開発・日々のことについて 】

プログラミング

【C#】set{ }get{ } 使用例

使用例1 public GameDifficulty Difficulty { get { return _difficulty; } //difficultyを選択する //セットするときにイベントを呼び出す set { _difficulty = value; EventsManager.OnGameChangeDifficulty(_difficulty); ChangeGravityBasedOnDiffculty…

【C#】Interface

www.youtube.com インターフェース - C# によるプログラミング入門 | ++C++; // 未確認飛行 C

【C#】デリゲート(delegate) 使用例 第二弾

ufcpp.net using UnityEngine; using System.Collections; namespace Test { delegate void SomeDelegate(int a); class DelegateTest { public void Main() { SomeDelegate a = new SomeDelegate(A); a(256); } static void A(int n) { Debug.Log("delegate…

【C#】 Dictionary 使用例

qiita.comexample 1 { public class TestClass : MonoBehaviour { Dictionary<int, string> dic = new Dictionary<int, string>() { { 0, "today's weather is nice!" }, { 1, "today's weather is so so!" }, { 2, "today's weather is really nice!" }, }; void Start() { foreach(in</int,></int,>…

【C#】スコープを浅くする

スコープが深いと読みづらい良くない例 if (item[i]._levelId == 0){ if (item[i]._stageId == 1){ // null }else{ _iStagePre.SetSprite(item[i - 1]._stageInGame); } }else{ _iStagePre.SetSprite(item[i - 1]._stageInGame); } _iStageNow .SetSprite(it…

【C#】デリゲート(delegate) 使用例 第一弾

delegate例 例1 public void FacebookShare (int id) { string msg = BossSource._item[id]._shareHeadline; Sprite ShareSprite = BossSource._item[id]._bossShareSprite; *****.Facebook.PostImageWithDialog(msg ,ShareSprite.texture, OnFacebookShareC…

【C#】ネーミング まとめ

命名の際に注意すること 名前に数字を利用するのは良くない 略語は出来る限り利用しない。一般的なもののみ利用してもよい。 複数形は利用しない。複数形か単数形かを混同したエラーを避ける。 tblやdbなどの接頭語は冗長であり無駄なので使わない ブーリア…

【C#】ToString("0.0") : 数値型を小数点1桁の文字列型に変換

小数点1桁 _tCompletePercent.text = _percent.ToString("0.0") + "%"; 【C#】数値を指定の書式に変換する - オープンリファレンス 数値のカンマ付与と小数点の丸め - テラシュールブログ

【C#】保守しやすいように書く

1. TODO: を活用する プログラマーは、ソースコードにTODOを書こう。 - このブログは証明できない。 MonodevelopでTODOを活用する - テラシュールブログ 【Unity小技】ToDoをエディタ起動時にログ出力させて忘れにくくする - Qiita 2. より簡潔に private vo…

【C#】整数同士の割り算、小数点有りで出力

整数同士の割り算 => 答えも整数になる! 片方の型を小数点を含む型にして割り算を実行する。 blog.jnito.com

【C#】public static int

int型を返すメソッド public static void SaveLanguage(GameController.GameLanguage language){ string key = _activeLanguage; Debug.Log ("save language " + language); if(language == GameController.GameLanguage.ENGLISH) PlayerPrefs.SetInt (key, …

【C#】const 定数 使用例

ufcpp.net // Game TAGS public const string GroundTag = "ground"; public const string ObstacleTag = "obstacle"; public const string PortalTag = "portal"; public const string ObstacleParentTag = "obstacleParent"; public const string PortalPa…

【C#】Delegate使用 Event 使用例 第一弾

using UnityEngine; using System.Collections; public class EventsManager : MonoBehaviour { public delegate void ClickSpaceHandler(); public static event ClickSpaceHandler onClickSpaceE; public static void onClickSpace( ) { if (onClickSpaceE…

【C#】継承 override, virtual

using UnityEngine; using System.Collections; public class karakter : MonoBehaviour { //protectedは、継承しているクラスで使える protected string nama ; //virtualにしないとOverrideできない protected virtual void Start () { nama = "ujang"; } …

【C#】foreach

www.youtube.com [Unity] オブジェクトの参照を取得する | HAPPY*TRAP FindGameObjectsWithTagで複数のオブジェクトを取得するときにエラーが出る Unity - スクリプトリファレンス: Object.FindObjectsOfType

【C#】例外処理

ufcpp.net void Awake(){ try { LoadData(); } catch (System.Exception ex) { } }

Serializable

インスペクターから見えるようにする。 using UnityEngine; using System; using System.Collections; using System.Collections.Generic; [Serializable] public class ItemCollection{ public int _Id; public Sprite _ItemSprite; public int _CurrentCol…

プラットホームごとに分岐

以下のように条件分岐させることができる。 #if UNITY_ANDROID && !UNITY_EDITOR if(mp.y < 350f || 1000f < mp.y){ //else if #elif UNITY_EDITOR if(mp.y < 100f || 340f < mp.y){ #endif return; } Unityでプラットフォームごとに分岐を作る - ことばアル…

多次元配列(三次元配列)

三次元配列、大きい括弧順に要素になっていく。 以下の例だと、8組を持った大きな2括弧が第一要素になり、3組を持った大きな8括弧が第二要素になる。 using UnityEngine; using System.Collections; public class SituationManager : MonoBehaviour { //…

「return;」でコメント!

「return;」を利用してコメントと同じように使える。 (カラーを保ったままで、コメント状態にできる。) void HandleonShortTapE (Vector2 pos){ return; if(GameManager.instance.Play == true){ print("Halo"); } } void HandleonShortTapE (Vector2 pos)…

配列、要素の位置

[列、行] using UnityEngine; using System.Collections; public class SituationManager : MonoBehaviour { public Animator anim; private string[,] myAnimList = { {"Hostage_0_0","Hostage_0_1","Hostage_0_2"}, {"Hostage_1_0","Hostage_1_1","Hostage…

2次元配列を使う

using UnityEngine; using System.Collections; public class SituationManager : MonoBehaviour { public Animator anim; //animationと名前が対応していないといけない。 private string[,] myAnimList = { {"Hostage_0_0","Hostage_0_1","Hostage_0_2"}, …

事象の割合をつけたい時

int n = Random.Range(0, 100); GameObject Item = Case[Type].transform.FindChild("Item").gameObject; //10% if (n < 10){ Item.GetComponent<SpriteRenderer>().sprite = null; //90% }else{ Item.GetComponent<SpriteRenderer>().sprite = ItemSprite; } Random.Rangeの注意 ハマケン100</spriterenderer></spriterenderer>…

Vectorの扱い

新しくベクトルを作るときには、「new Vecter()」 Case[Type].transform.DOMove(new Vector3( -6.8f,0,0),0.2f); Case[Type-1].transform.DOMove(new Vector3( 0,0,0),0.2f); //以下のように書き換えれる。 public Vector3 NowPos = new Vector3(0, 0, 0); p…

文字型Stringを引数にもつ関数を作るときのメモ

呼び出す側に""をつけて、関数の方にはつけない。 void OnSwipeUp(){ print("OnSwipeUp"); ShowInput ("OnSwipeUp"); } void OnSwipeDown(){ print("OnSwipeDown"); ShowInput ("OnSwipeDown"); } void ShowInput(string Stri){ ShowInputText.GetComponent<Text> </text>…

小数点いくつまで表示するか決める

Parent.transform.FindChild("TimerGameOver").GetComponent<TextMesh>().text ="" + TimeCurrent.ToString("f1"); Unity(JavaScript)で小数の桁数を指定して表示 | kankaz.net</textmesh>

リスト名.Add

リストの要素の追加は、Addを使う。 public List<GameObject> Obj; void Start () { for (int i = 1; i <=NumObj; i++){ Obj.Add(GameObject.Find("Obj"+i)); } } UnityでListを使いたい - Qiitaqiita.com</gameobject>

#if UNITY_IPHONE #endif

Unityでプラットフォームごとに分岐を作る - ことばアルバムis4cafe.hatenablog.com

PlayerPrefsのデータをすべて消して動作確認

if (Input.GetKeyDown(KeyCode.A)){ PlayerPrefs.DeleteAll(); } Unityで、保存データ全消しのデバッグ用ボタンを配置するblog.k-kansei.com

Androidアプリ開発

Android アプリ開発に (UI) UI « Android GitHub - futurice/android-best-practices: Do's and Don'ts for Android development, by Futurice developers GitHub - futurice/ios-good-practices: Good ideas for iOS development, by Futurice developers. …

シーンが変わってもスコアが初期化されないようにする。

public static int CurrentScore; スコア、ハイスコアの保持(unityC#): おじさんのプログラミングojisan-puroguramu.seesaa.net

#region(コードの可読性)

#regionについてregionとコードのテンプレート - Unity / VRゲーム開発日記@長崎icoc-dev.hatenablog.com コードの可読性 まずコードの可読性を最適化しよう | POSTD

bool変数を使って、ボタンの制限をかける。

オブジェクトを開いている干渉しないようにする。 画面上に複数のbuttonオブジェクトがある場合、何かを開いている時に他を押せないようにする。 public class Shop : MonoBehaviour { public bool ShopClicked; public void ShopButton(){ // buttonを押し…

動作を確認したい時

メソッドの確認、bool型の変数の状態の確認 void Update(){ print("GameOver.GameOverFlag =" +GameOver.GameOverFlag); if(Input.GetKeyDown(KeyCode.S)){ ReplayButton(); } } 2014/05/05追記 コンソールにprintで出力したい時、Update()に書く、printは一…

【C#】インクリメント、デクリメント

1つだけ足したり、1つだけ引くことはよくある 特別な書き方 x++; x--; //以下に等しい x = x + 1; x = x - 1; 例2 Score.instance.ScorePont++;

【Unity エラー】CS1612 : Mathf.Clamp

エラー内容 どうも一回要素を取り出してあげなければならないようだ。 Assets/Script/_Script_player2/PlayerManager.cs(20,35): error CS1612: Cannot modify a value type return value of `UnityEngine.Transform.position'. Consider storing the value …

foreach

int[] list = new int[]{1,2,3,4,5}; for (int i = 0, i < list.Length; i++){ } foreach(var item in list){ } www.youtube.com

【C#】デリゲートとは

複数のメソッドを渡すことができる デリゲートとは関数を入れられる変数である kan-kikuchi.hatenablog.com [C#] デリゲート(delegate)とはなんぞや – gomokulog 連載:C#入門 第17回 処理を委譲するdelegate 連載:C#入門 第13回 言語に内蔵されたイベント…

オブジェクトをインスタンスする。(Listについて)

インスタンスについて! public List<GameObject> heart; public GameObject myheart; public Sprite HeartOn; // Spawnは生成するというような意味 public void SpawnHeartFirst(int startCountHeart){ for(int i=startCountHeart;i<5;i++){ // オブジェクトを生成する</gameobject>…

【Unity】 Mathf まとめ

Mathf.Floor() //切り捨て Mathf.Ceil() //切り上げ Mathf.Round() //四捨五入 Mathf.FloorToInt() //切り捨て(Int型に変換) Mathf.CeilToInt() //切り上げ(Int型に変換) Mathf.RoundToInt() //四捨五入(Int型に変換) Mathf.Abs() //絶対値 Mathf.Sign…

C#の型「var」

varは使える。でも、動作が遅くなるのかな。連載! とことん C#: 第 10 回 型を書かなくても強い型付け! (var とジェネリック) in C#code.msdn.microsoft.com

Switchの使用例

Switch内のプロパティlevelに応じて、返す値(string)を変える。 public int ChildIndex; public void Ontap(){ CharacterName(ChildIndex); } public string CharacterName(int level){ switch (level) { case 0: return "His name is ooooo"; break; case 1…

アニメーションを使うとき

アニメーションのデータをUnityでは「Animation clip」と呼ぶ。 例えば、「走る」「考える」とか。 Animation Viewで編集することができる。名前を配列で管理して配列の番号で呼び出す。 private Animator anim; private string[] myAnimList = {"run","thin…

Random.Range

Random.Range常に回転させていとき、Time.deltaTimeを使って回転させることができる。 void Start () { angle = Random.Range(15,60); transform.Rotate(new Vector3(0, 0, Random.Range(0,360))); // 5から10秒後に消去する。 Destroy(gameObject, Random.R…

オブジェクトを生成する方法

GameObject型の変数に入れる場合は、GameObjectでキャストしてあげる。 GameObject obj = (GameObject)Instantiate(shot); obj.transform.localPosition = point; as GameObjectと書いてあげる GameObject obj = Instantiate(shot,new Vector3(point) as Gam…

リスト・配列を使うとき(要素数)

リスト・配列の使い方 表記の仕方 ChildList == 全体を表したいとき ChildList[ ] == リストの中の番号を指定したいとき //リストを使うとき書く using System.Collections.Generic; //リストの定義の仕方、インスペクタ上で設定することができる public List<ChildChance></childchance>…

DateTime.Now

現在の時刻を獲得する。 これとPlayerPrefsを使うことによって、経過時間を計算することができる。 //using Systemが必要 using System; C#プログラミングTips:日付と時刻の処理を知る //ストリング型として保存する。 void Start () { PlayerPrefs.SetStri…

【Unity】シングルトーン : 使用例 第一弾

シングルトーン使用例1 public class AudioManager : MonoBehaviour { public static AudioManager instance = null; void Awake(){ if (instance == null) { instance = this; } } } // 他のスクリプトで呼び出すとき AudioManager.instance.MusicBackgrou…