admin のすべての投稿

Unity入門-14

 

0秒になったら終了させる

  • まずは時間がゼロ秒になったら終わらせるプログラムを入れる場所を探す
  • 探し方概要
    • 概要:いろいろな場所にDebug.Log(“koko”);を書いて,1秒毎に変化する場所を探す
    • 入力した行が実行された時にコンソールkokoと表示される
    • コンソールのCollapseはオフにする(Collapse同じ内容は1行だけ表示する機能をオフにする)
  • 実際の探し方
    • 各関数{}内の最初か終わり近くにDebug.Log(“koko”);を記入
    • 保存→ゲーム実行→Consoleを確認 を繰り返し,秒変化と同じタイミングで現れる箇所を探す
    • ヒント:秒の変化と音(Tick)の再生は同期しているので,そのあたり,,,?
  • その場所に以下のプログラムを入力する
			if (gameTime < 1) {
				//go end
				StopCoroutine("loop");
				Invoke("goEnd", 2f);
			}

変数 gameTimeが1未満になったら,時間制御をしているコルーチンloopを止めて,goEndの関数を2秒後に実行 の意味

こちらは2秒後に実行されるので,少し余裕が持てます.goEndを実行するタイミング(ここでは2秒)を変えて自分が最も良いと思う時間に変更してみましょう

なお2fのfはfloat(実数)の意味です.Unity上では実数の場合はfとつけるルールがあります

 

これでもいけます

if (gameTime < 1) {
goEnd();
			}

変数gameTimegが1未満になったらgoEnd関数を実行(こっちは2秒待たないのでせわしない)

 

シーンチェンジはどこ?

  • シーン「end」にジャンプする関数 void ○○○(){   } はどこか再度確認すること(上でに書いてありますが)

変数宣言をいろいろ試す

  • 変数宣言をする場所がある
    • グローバル編
      • プログラムのどこでも使えるけど,このプログラム外では使えない
      • publicをつけるとインスペクタで設定できる.インスペクタで設定した値は,プログラムで宣言した値よりも優先される(プログラム側で変更はできる)
      • privateをつけるか何もつけない変数宣言はインスペクタには表示されない
    • ローカル編
      • 関数内で使える(ちょいとメモ代わりや,変数の受け口に使える)
    • 神編
      • staticは神
      • public static int mikeneko; と宣言すると,スクリプト名.mikeneko でゲーム内のどこでも使える
      • ただし関数などによってはstaticを嫌うものがあるので,その際はnamespaceなどを使ってusingする

Photoshop入門その5

レイヤーその2

  1. レイヤーマスク(白と黒で消す)
  2. レイヤースタイル(効果,ボタン作成などにも)
  3. 自由変形
  4. 変形・ワープ変形モード(ベジェカーブを手がかりに変形)
  5. パペット変形(関節のような変形)
  6. レイヤーの整理
    1. レイヤーの結合(レイヤーをまとめる)
    2. 画像を統合(1枚の画像にまとめる)
    3. 画像の書き出し(JPEGなど非可逆圧縮で保存=>送りやすい)

NCMBでデータストア管理

96時間はまったこと

  • NCMBデータストアはJSON互換だけどJSONは保存できない
  • NCMBデータストア一回のセッションに複数のログ(今回はスキルチェックの結果)を保存する場合は,Dictionaryで保存する
  • UnityのC#でDictionaryを使うには最初に「using System.Collections.Generic;」って言っておく
  • アクセス権を設定する場合,新規オブジェクトの場合は「NCMBACL acl = new NCMBACL ();」でいいが,既存の場合は一旦アクセス権を読み込んでから書き換える(参考サイト
  • データストアはACL設定しないと公開になる仕様らしい(ランキングとか用なので)
  • ACLのスクリプトでユーザ名の使い方その1
    NCMBUser user = NCMBUser.CurrentUser;
    string userName = user.UserName;
    			NCMBACL acl = new NCMBACL ();//今回のログは新規作成なのでnewでよい
    			acl.SetWriteAccess (userName, true);
    			acl.SetReadAccess (userName, true);

     

 

ハムスターで行こう!

唐突ですが,ハムスターメディアと切っても切れない関係にあります.

プログラミングがよく分からないという方は,今回の「Unityプログラミングはハムスターだらけ」で構造を理解してください.

 

Photoshop入門その4

やること

テストの解説

  • 再サンプルのチェックをOn/Offにするときはいつか?
    • ピクセル数を変えたいとき=ON(例:画像のデータ量を変更したいとき,ピクセル数を指定して変更したいとき)
    • ピクセル数を変えたくないとき=OFF(例:印刷解像度の変更)
  • DPI(Dots Per Inch)
    • PPIと同じ
    • 印刷する際のピクセルの密度の考え方
    • 1インチは25.4mmと考える

コンピュータのお約束その2

  • 一般的な1パケット容量は128バイト
  • 米印とアスタリスク
  • シャープとナンバーサイン
  • ニョロ(波ダッシュ)
  • スラッシュとバックスラッシュ
  • URLの末尾表記,ディレクトリ指定の場合は?
  • マルチバイト文字

例題

(1)自作の詩をネットで送信しようとした.1パケット0.3円の回線で送信する場合,いくら必要か.なお詩は日本語で512文字あり,文字のみを送信したとする.

(2)自作の詩をネットで1パケット0.3円の回線で送信する場合,いくら必要か.なお詩は英語で512文字あり,文字のみを送信したとする.

(3)1MBの画像データを1パケット0.5円の回線で送信するとき,パケット代はいくら必要か.画像データのみを送信したことにする.

(4)350DPIで印刷した場合に12.7cm幅となる正方形画像がある.この画像を1パケットを0.1円の回線で送信するときに,いくら必要か.小数点以下切り捨てて答えよ.なお画像はRGB各8bitとし,画像以外のデータは送信しないものとする.

Photoshop後半

  1. レイヤー
  2. レイヤー付きの保存(*.PSD形式が一般的)
  3. その他保存形式
  4. その他(時間に応じて)

 

 

Unity入門-13 スクリプトmyQuestをざっくり対訳してみる

対訳してみました.

元のスクリプトは

using UnityEngine;
using System.Collections;
using UnityEngine.UI;//UIを使用するのに必要
using UnityEngine.SceneManagement;//シーン遷移をするのに必要

public class myQuest : MonoBehaviour {

	[SerializeField, HeaderAttribute ("経由地の数")]
	public int points;

	//sound
	[SerializeField, HeaderAttribute ("効果音をドロップ")]
	public AudioClip getSound;
	public AudioClip tickSE;


	//default time
	[SerializeField, HeaderAttribute ("カウントダウンの初期時間")]
	public int gameTime;
	[SerializeField, HeaderAttribute ("残時間のUItextをドロップ")]
	public Text timeText;
	[SerializeField, HeaderAttribute ("残りの経由地数表示UIをドロップ")]
	public Text nokoriText;

	[SerializeField, HeaderAttribute ("エンディングのシーン名を入力")]
	public string endSceneName;

	//audio source get from this script attached
	AudioSource myaudio;


	// Use this for initialization
	void Start () {

		myaudio =	GetComponent<AudioSource>();
		timeText.text = "残り時間" + gameTime.ToString () + "秒";
		nokoriText.text = "のこり" + points.ToString () + "個";
		//start after nSec
		Invoke("timeCount", 3.5f);
	}
		
	void Update () {
	
	}


	//if hit destroy obj
	void RedirectedOnTriggerEnter(Collider mycollider) {
		//Debug.Log (mycollider.gameObject.tag);
		if (mycollider.gameObject.tag == "pointObj") {
			points--;
			nokoriText.text = "のこり" + points.ToString () + "個";
			myaudio.PlayOneShot (getSound, 0.7F);
			Destroy (mycollider.gameObject);

			if (points < 1) {
				//go end
				StopCoroutine("loop");
				Invoke("goEnd", 2f);
			}
		}
	}

	void timeCount(){
		StartCoroutine("loop");
	}

 

対訳はこちら(画像:クリックで拡大)

%e5%af%be%e8%a8%b3%e3%81%97%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86

次へ

game managerシステムみたいなの

 

よくつかう関数をいれとくのを作ります

using UnityEngine;
using System.Collections;

namespace globalManager{//名前空間

public class myManager : MonoBehaviour {//クラス名はmyManager


		public static void mytest2(){
			Debug.Log ("test");
		}

		public static void mytest3(int cat){
			Debug.Log (cat);
		}


}

}

 

このnamespaseでusingすると呼び出せます

using UnityEngine;
using System.Collections;
using globalManager;//必要

public class slaveScript : MonoBehaviour {

	void Start () {
		myManager.mytest2 ();
		myManager.mytest3 (5);
	}
	

}

これで,コンソールには

「test」「5」と表示されます

 

入力された数値をならす

.lerpがうまく使えなかったので,速度をならしたやつ

月のジャンプ力をこれに入れるとならせますが,配列は3くらいがいいかも

 

	//変数作成
	float[] spArr = new float[5];//spArrというフロートの長さ5の配列を作成
	float avrKmspeed;//平均速度格納用
	
	//初期化
	float sum = 0f;//初期化(てきとうなとこに入れてね)
	
	
		//データ格納

		if (i < 5) {//iが5未満なら
			spArr [i] = myspeed;//配列のi番目に速度を格納して
			i++;//iを1つ増やす
		}
		if (i > 4) {//iが4よりでかければ
			i = 0;//iはゼロね(先頭にもどる)
		}
		

		for (int j = 0; j < spArr.Length; j++) {//配列の長さだけ繰り返すよ
			sum += spArr [j];//sumに配列の中身全部足す
		}
		
		avrKmspeed = sum / spArr.Length;//配列の中身総計を配列の長さで割る

 

Photoshop入門その3

以前積み残しの

 

  1. 画像解像度と印刷サイズ
    1. リサイズの方法
    2. DPI(Dots Per Inch)
    3. ピクセル=画像を構成する最小単位
    4. ドキュメントサイズ=用紙サイズ
  2. 基礎知識の確認
    1. bitとByte
    2. 1KBは何B?
    3. 非圧縮でRGB各色8bitのときの1ピクセルの画像データ量
    4. bps
    5. MANABOのミニテスト

について

確認することがら

  1. ピクセルについて
  2. 画素数の数え方(面積の公式と同じ)
  3. リサイズ(ピクセルの数を減らす)について
  4. 解像度の単位について
  5. 解像度(印刷解像度)の変更について(ピクセル数は変わらない)
  6. 色空間について(RGB,CMYK,HSV)
  7. 加法混色,減法混色について
  8. 基礎知識の確認
  9. bitとByte
  10. 1KBは何B?
  11. bps
  12. 非圧縮でRGB各色8bitのときの1ピクセルの画像データ量

 

練習問題(練習)

  1. 縦100ピクセル×横100ピクセルの画像は全部で何ピクセルあるか
  2. 上の画像の縦と横のピクセルを半分にした場合,総画素数はいくらになるか
  3. フルハイビジョン(1920×1080ピクセル)はおよそ何万画素あるか
  4. 4K映像(UHD:3840×2160ピクセル)はおよそ何万画素あるか
  5. 自分が持っているカメラ(スマホやコンパクトデジカメ)は静止画時に最大何万画素で撮影可能か調べる
  6. 80bitは何バイトか
  7. 1Gbpsの光回線を契約した.実際に1Gbpsの速度が出るとして,10GBのデータを送る場合,送信には何秒必要か
  8. RGB各色8bitで256×512ピクセルの画像がある.この画像が非圧縮のときデータ容量は何KBか?