2014年10月18日土曜日

MacでUnity開発に必要な最低スペック

Mac miniやMacBookAirでどのくらいUnityでゲーム開発ができるか調べてみました。
必要な最低スペック

PCスペック

Intel Core i5 1.4G
メモリ DDR3 1600 4G

現在販売されているMacの最低スペックです。

結果

重そうなデモプロジェクトも普通に動作します。
テスクチャを拡大縮小しても問題なし。
個人で開発をする分には最小構成のMacで十分です。
Macは起動するだけでメモリを5ギガくらい大量消費しますが、
内3ギガはメモリの高速化をするためキャッシュです。
実際は1.5ギガ程度のメモリ消費と考えて問題ありません。
メモリは大いに越したことはありませんが開発効率を考えると以下になります。

Macで開発を始めようと考えている方は以下の優先度でハードを選ぶといいです。
  1. 20インチ以上のディスプレイ
  2. SSD
  3. メモリ8G以上
  4. GPU GForce X50以上
  5. CPU Intel クアッドコア

ノートPCで開発をするのなら最低でもディアルディスプレイと外付けキーボードはほしいところです。

Unity オブジェクトを移動させる方法色々

オブジェクトの移動にはtransform.positionを使う方法がありますが他にも


があります。

velocityはオブジェクトの速度を設定します。
AddForceはオブジェクトに力を加えます。
動かしてみると分かりますがvelocityは速度を直接指定しているので摩擦がかからずに一定速度になります。一方AddForceは地面では摩擦で動きが遅いですが、ジャンプさせると加速し続けます。

具体的な使用方法は以下のサンプルソースを参考にしてください。
リジットボディも必要です。
using UnityEngine;
using System.Collections;

public class Sousa : MonoBehaviour {

public float speed =   9.0f;
public float jumpspeed = 9.0f;
public float gravity = 20.0f;
private bool jimen = false;

private Vector3 idou =  new Vector3();

public void Start()
{
jimen = true;//地面判定は自作しないと
}

public void Update()
{
if (jimen)
{
idou = new Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxisRaw("Vertical"));
idou = transform.TransformDirection (idou);
idou *= speed;

if(Input.GetButton ( "Jump"))
{
idou.y = jumpspeed;
}
}
idou.y -= gravity * Time.deltaTime;
//transform.rigidbody.AddForce(moveDirection);//力を加えて移動
rigidbody.velocity = idou;//直接加速度を設定すつ


}
}

2014年10月17日金曜日

Mac mini 性能比較 2012 vs 2014

本日午前2時頃にアップル社の新製品発表がありました。

タブレットは指紋認証が付いたくらいの変更です。
一体型デスクトップパソコンはiMacは5kディスプレイの映像クリエイター向けバージョンが追加されました。

IOS開発用に期待していたMac miniはというと

旧型と性能はたいし
て変わらなそうです。
クアッドコアモデルが無くなりました。

2年前あたりでCUPやメモリなどPC部品の進歩が止まっているせいです。
来年ならBroadwelやDDR4が期待できたのですが。。
追記。よくみたらメモリがLPDDR3になっていました。性能向上よりもメモリを交換できないのがネックのような。

ベンチマークと比較してみると

Mac mini 2012 intel Core i5 2.5G ≒ Mac mini 2014 intel Core i5 1.4G
CPUの処理は旧型、GPUは新型がやや優れていました。ほぼ変わりがありません。
旧型はクアッドコアモデルがあるぶん伸び城が大きい。CPU以外の他のパーツはほぼ同じですし。

2014年10月16日木曜日

Unity キャラクターの移動とジャンプ

スペースキーでジャンプ。矢印キーで移動します。
CharacterControllerクラスを使用したアクションゲームのサンプルソース。
動かしたいオブジェクトにRegitBodyとCharacterControllerと以下のスクリプトクラスを追加して使用してください。

基本オブジェクト以外を動かす場合はCharacterControllerの辺り判定を調整してください。

using UnityEngine;
using System.Collections;

public class ChareIdou : MonoBehaviour {

public float speed =   9.0f;
public float jumpspeed = 9.0f;
public float gravity = 20.0f;


private Vector3 moveDirection =  new Vector3();
private CharacterController controller;

public void Start()
{
controller =GetComponent("CharacterController")as CharacterController;
}

public void Update()
{
//CharacterController.isGroundedキャラクターが地面に接しているか?
if (controller.isGrounded)
{
moveDirection = new 
//TransformDirectionはローカルのTransform情報をワールド座標系に変換します
Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxisRaw("Vertical"));
moveDirection = transform.TransformDirection (moveDirection);
moveDirection *= speed;

if(Input.GetButton ( "Jump"))
{
moveDirection.y = jumpspeed;
}
}
//Time.deltaTimeは前フレームが呼び出されたときからの経過時間を取得出来ます
moveDirection.y -= gravity * Time.deltaTime;

controller.Move (moveDirection * Time.deltaTime);
}
}

2014年10月15日水曜日

Unity MissingComponentException CharacterController

CharacterControllerを使用時のエラーメモ。
スクリプトからCharacterControllerを使う場合は、ゲームオブジェクトのインスペクタからAddComponentボタンを押して物理のCharacterControllerを追加してください。

MissingComponentException: There is no 'CharacterController' attached to the "Sphere" game object, but a script is trying to access it.
You probably need to add a CharacterController to the game object "Sphere". Or your script needs to check if the component is attached before using it.
RoboIdou.Update () (at Assets/)

例:
以下のコードを使用しているスクリプトはCharacterControllerコンポーネントを同じオブジェクトに追加して併用する必要があります。
cc = GetComponent("CharacterController")as CharacterController;

ANDROIDのアクティブバージョン統計情報





バージョン別シェア一覧


Android 4.4 24.45%
Android 4.1 24.13%
Android 4.2 16.22%





Android 2.3.3 - 2.3.7 13.96%
Android 4.0.3 - 4.0.4 10.09%
Android 4.3 8.41%
Android 2.2 2.10%
Android 3.2 0.31%
Android 2.1 0.14%
Android 3.1 0.09%

2.3がまだ14%ほど使用されています。

2014年10月11日土曜日

WindowsだけでIOS開発 Unity Cloud Build

 WindowsだけでIOS開発ができると便利なのですがMacを使わないとIOSアプリをコンパイルできません。方法がないものかと以前に調べていましたが、結局Macハードが必要と結論がでました。※仮想環境Macはアップデートができないし、安定しない。
 そこで最近サービスが開始された「Unity Cloud Build」について調べてみました。

Unity Cloud Buildは名称どおりサーバでUnityプロジェクトを管理し、アプリをコンパイルしてくれるといったもの。いろいろと登録しないといけません。複数人でプロジェクトを管理するにはいいかも?

とりあえず結論。

WindowsだけでIOSアプリを作れます。Appleストアで公開も可能なはず。
ただし、Unity Cloud Buildサービスは空きがないようで再募集されるまで登録できません。
たぶん、有料になるんじゃ。。

一番安いMac mini 2014でも買おう・・・