///// 但是請注意要用 Unity 填入 ID 去抓來顯示, 最好再加一個讓使用這輸入欄位打入臉書姓名做參考!
/// ?? 上次陳皆樺所繳交的三張圖片不符合規定喔 !
要有你學號與姓名, 要有三個可跳上跳下的平台, 確定可用左右鍵移動並利用速度切換動畫(控制Animator)
(3)利用 Sorting Layer 使背景圖在畫面最底層 (上課會Demo)
這微軟古時候的"錄音機" 很好用
sndrec32.exe | |
File Size: | 128 kb |
File Type: | exe |
/// 以下腳本 按 g 可發出聲音
/// yyy.js
#pragma strict
@Header("把一個聲音拉給以下 Sound, 腳本掛在動畫物件上")
var sound: AudioClip; // 請掛個聲音給這變數
private var playing = false;
public function DoDo( ) {
if( ! sound) return; if(playing) return;
playing = true;
playSound( );
} // DoDo
private function playSound( ) { // coroutine
AudioSource.PlayClipAtPoint(sound, transform.position);
yield WaitForSeconds (sound.length); // 請把聲音切成剛好長度 !
playing = false;
} // DoDo(
function Start ( ) {
//if( ! sound ) sound = (AudioClip)gameObject.GetComponentInChildren(AudioClip); //聲音
} // Start(
function Update () {
if(Input.GetKeyDown(KeyCode.G)) DoDo( );
}
抓以下 haha38.unitypackage 然後匯入 Unity 內可看到多一個目錄
haha38.unitypackage | |
File Size: | 4294 kb |
File Type: | unitypackage |
/// tmd.js
#pragma strict
// 按 y 發射特效
@Header("把這腳本掛在帶有ParticleSystem的動畫物件, 或把ParticleSystem取名 呼死")
var parSys : ParticleSystem; // for ver. 3.5 or later versions
public function haha( ) {
if( ! parSys ) return;
parSys.enableEmission = true;
parSys.Play( );
}
function Start () {
if( ! parSys)parSys =
gameObject.GetComponentInChildren(ParticleSystem); // 3.5 or later
if(!parSys) parSys =
GameObject.Find("呼死").GetComponent.<ParticleSystem>();
if(parSys) parSys.enableEmission = false;
if(parSys) parSys.enableEmission = false;
}
function Update () {
if(Input.GetKeyDown(KeyCode.Y)) haha( );
}
今天繳交的螢幕抓圖中要有一張正好發出特效時抓下的
Unity 官方 2D 遊戲教學
https://unity3d.com/learn/tutorials/topics/2d-game-creation/2d-character-controllers
注意內部預設變數 rigidbody2D 在 Unity 5.0 開始已經不可以用 !
Rigidbody2D myBody = null;
void Start( ) {
if( ! myBody) GetComponent<Rigidbody2D>( );
} // Start(
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class example : MonoBehaviour {
public string url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
IEnumerator Start() {
WWW www = new WWW(url);
yield return www;
renderer.material.mainTexture = www.texture;
}
}
/// 參考 Unity 官方網站的 WWW.texture
/// https://docs.unity3d.com/400/Documentation/ScriptReference/WWW-texture.html
///
using System.Collections;
using UnityEngine.UI;
public class Test : MonoBehaviour {
string userId = "100006487850605"; // Facebook 用戶 ID
IEnumerator Start () {
WWW www = new WWW("https://graph.facebook.com/" +
userId + "/picture?type=large");
yield return www;
renderer.material.mainTexture = www.texture;
}
}
new Rect(0, 0, www.texture.width, www.texture.height), new Vector2(0.5f, 0.5f) );
用 UI >> Text 放入你的學號姓名, 放畫面左上角 ! 字不可太小 !
用一個 UI.Image 來放大頭貼
用 UI.InputField 讓使用者輸入 id
然後抓圖片顯示在畫面 (用 UI.Texture)
再生一個 UI.Button
要變大喔? 太簡單了:
GetComponent<Image>().transform.localScale = new Vector3(3, 3, 3);
more Hint:
要做類似如下畫面, 使用者輸入 FB id number, 按下按鈕就更換大頭貼 !
//如何取得輸入格子 InputField 的內容 ?
using UnityEngine.UI;
public UI.InputField who; // InputField 要與這 who 關聯起來 !
string userID; // 注意不要重複宣告/定義 !
//
userID = who.text.ToString();
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GGGYYY : MonoBehaviour {
[Header("注意要把 InputField 拉給這, 或把該 InputField 取名臉書")]
public InputField who;
public string userId = "100006487850605"; // Facebook 用戶 ID, 猜猜這是誰 ?
IEnumerator Start () {
if( ! who) who = GameObject.Find("臉書").GetComponent<InputField>() ;
WWW www = new WWW("https://graph.facebook.com/" +
userId + "/picture?type=large");
yield return www;
// renderer.material.mainTexture = www.texture;
GetComponent<Image>().sprite = Sprite.Create(www.texture,
new Rect(0, 0, www.texture.width , www.texture.height), new Vector2(0.5f, 0.5f) );
GetComponent<Image>().transform.localScale = new Vector3(3, 3, 3);
}
IEnumerator getFB( ) { // 含有 yield 的必須是 IEnumerator, 須用 StartCouroutine 叫!
WWW www = new WWW("https://graph.facebook.com/" +
userId + "/picture?type=large");
yield return www;
GetComponent<Image>().sprite = Sprite.Create(www.texture,
new Rect(0, 0, www.texture.width , www.texture.height), new Vector2(0.5f, 0.5f) );
GetComponent<Image>().transform.localScale = new Vector3(3, 3, 3);
}
/// 以下是給按鈕被按下(OnClick)時要做的, 所以一定要宣告 public 喔
public void goGetIt( ) {
userId = who.text.ToString();
StartCoroutine( getFB( ) ); // C# 一定要這樣寫
}
}
(1)自己 FB, (2)和(3)是你兩位同學的 FB
然後再複習 2D動畫 Animation Clip 製作與動畫播放器 Animator 的控制
也是抓三張畫面繳交
[Unity] Facebook SDK 範例使用教學 By 剪刀
Overview
1. 新增 Facebook App
2. 設定 Facebook App Key Hash
3. 安裝 OpenSSL
4. 安裝 JDK
5. 設定環境變數
6. 下載並匯入 Unity Facebook SDK
7. 確認 Bundle ID 與 Keystore
8. 修正 AndroidManifest Merge
9. 輸出!
以下是詳細圖文步驟
建立 Facebook App
首先到 Facebook開發者頁面 申請成為開發者
接著點選 My Apps => Add a New App
平台選擇
通常使用 Unity 開發的都是從 Android 開始
接下來也以 Android 為例解說
命名
Naming 是最困難的一部分…XD
總之就取個好記又和別人不一樣的名字吧!
Package 與 Activity Name
接下來要設定 Package Name 和 Activity Class Name
Package Name 要和 Unity 專案中設定一樣
而Unity 的預設 Activity 是
com.unity3d.player.UnityPlayerActivity
測試確認
通常都不會上架之後才測試 Facebook 吧?
所以出現這個視窗就不理他
選擇 Use this package name 繼續~
建立 Key Hashes
詳細請看這篇:如何產生 Android Key Hash
上面這篇是使用 Mac 建立的
若是用 Windows 的可以先略過這個步驟
等待會 OpenSSL 和 JDK 安裝好
環境變數設好之後再回頭來產生 Key Hash
建立完成
完成後可以看到 Facebook 的 App ID
待會 Unity 中會需要設定
下載 Facebook SDK
SDK 更新的頻率很頻繁
基本上大型專案功能沒問題
就不需要太常更新
開新 Unity 專案
開一個全新的專案
並把 FacebookSDK package 中的東西全部匯入
Facebook Setting
匯入完成後
點上方選單列會新增一個 Facebook
打開後選 Edit Setting
OpenSSL not found
先把 App Id 填入後
打開下方的 Android Build Facebook Setting
確認是否一切正常
這時沒安裝 OpenSSL 的朋友就會遇到以下訊息:
OpenSSL not found. Make sure that OpenSSL is installed, and that it its in your path.
下載 Openssl-forwindows
安裝路徑
解壓縮 OpenSSL 包後
放到自己想要的位置
剪刀是放在 Program Files 下
新增 OpenSSL 環境變數
我的電腦 => 右鍵內容 => 進階系統設定 => 環境變數
在系統變數中找到 Path
新增路徑指向 OpenSSL 下的 bin 子資料夾
記得前面要加分號
Ex. C:\Program Files\OpenSSL\bin
接著重新啟動 Unity(一定要關掉再打開)
Keytool not found
搞定 OpenSSL 後
沒設定好 JDK 的話會接著遇到這個問題
下載 JDK
新增 JDK 環境變數
跟 OpenSSL 一樣
將路徑指到子資料夾 bin 下
設定完成後再次重新啟動 Unity
Ex. C:\Program Files\Java\jdk1.8.0_25\bin
確認 Bundle ID
要和 Facebook 後台一樣
設定 Scenes
把 Examples 中的場景全部加到 Build Settings 中
MainMenu Scene 擺第一個
Unable to merge android menifests
接下來可能會遭遇到最後這個問題
各個 Menifests 的版本設定不一
Error Log
在 Log 中可以看到所需要
minSdkVerion 和 targetSdkVersion
的最高版本為何
SdkVersion 設定
Minimum API Level 可以在 Other Settings 頁面設定
對應到 minSdkVersion
但是沒有 targetSdkVersion 的設定
比較快的方法是直接打開主要的 Manifest.xml
在裡面加入 SdkVesrion 的設定
Path: Assets/Plugins/Android/AndroidManifest.xml
登入 FB
Build 成功後
先點擊 FB.Init 初始化
就可以開始登入了
記得要使用開發者的帳號
發文測試
測試時權限可以選擇只限本人看到
接下來就可以隨意開心地測試了
FacebookManager on Github
程式實作部分可以參考剪刀寫的 FacebookManager
用法大致如下:
1 2 3 4 5 6 | m_fbManager = new FBManager(); m_fbManager.LoginCompleteEvent += OnFBLoginComplete; m_fbManager.ErrorEvent += OnFBError; m_fbManager.Login(); m_fbManager.Snapshot( texture, title, fileName ); |
歡迎您留言與分享!(Welcome for comments or sharing!)
[Unity] Facebook SDK 範例使用教學 By 剪刀 Overview1. 新增 Facebook App
2. 設定 Facebook App Key Hash
3. 安裝 OpenSSL
4. 安裝 JDK
5. 設定環境變數
6. 下載並匯入 Unity Facebook SDK
7. 確認 Bundle ID 與 Keystore
8. 修正 AndroidManifest Merge
9. 輸出!
以下是詳細圖文步驟
建立 Facebook App首先到 Facebook開發者頁面 申請成為開發者
接著點選 My Apps => Add a New App
[Unity] Facebook SDK
平台選擇通常使用 Unity 開發的都是從 Android 開始
接下來也以 Android 為例解說
[Unity] Facebook SDK
命名Naming 是最困難的一部分…XD
總之就取個好記又和別人不一樣的名字吧!
[Unity] Facebook SDK
Package 與 Activity Name接下來要設定 Package Name 和 Activity Class Name
Package Name 要和 Unity 專案中設定一樣
而Unity 的預設 Activity 是
com.unity3d.player.UnityPlayerActivity
[Unity] Facebook SDK
測試確認通常都不會上架之後才測試 Facebook 吧?
所以出現這個視窗就不理他
選擇 Use this package name 繼續~
[Unity] Facebook SDK
建立 Key Hashes詳細請看這篇:如何產生 Android Key Hash
上面這篇是使用 Mac 建立的
若是用 Windows 的可以先略過這個步驟
等待會 OpenSSL 和 JDK 安裝好
環境變數設好之後再回頭來產生 Key Hash
[Unity] Facebook SDK
建立完成完成後可以看到 Facebook 的 App ID
待會 Unity 中會需要設定
[Unity] Facebook SDK
下載 Facebook SDKSDK 更新的頻率很頻繁
基本上大型專案功能沒問題
就不需要太常更新
[Unity] Facebook SDK
開新 Unity 專案開一個全新的專案
並把 FacebookSDK package 中的東西全部匯入
[Unity] Facebook SDK
Facebook Setting匯入完成後
點上方選單列會新增一個 Facebook
打開後選 Edit Setting
[Unity] Facebook SDK
OpenSSL not found先把 App Id 填入後
打開下方的 Android Build Facebook Setting
確認是否一切正常
這時沒安裝 OpenSSL 的朋友就會遇到以下訊息:
OpenSSL not found. Make sure that OpenSSL is installed, and that it its in your path.
[Unity] Facebook SDK
下載 Openssl-forwindows[Unity] Facebook SDK
安裝路徑解壓縮 OpenSSL 包後
放到自己想要的位置
剪刀是放在 Program Files 下
[Unity] Facebook SDK
新增 OpenSSL 環境變數我的電腦 => 右鍵內容 => 進階系統設定 => 環境變數
在系統變數中找到 Path
新增路徑指向 OpenSSL 下的 bin 子資料夾
記得前面要加分號
Ex. C:\Program Files\OpenSSL\bin
接著重新啟動 Unity(一定要關掉再打開)
[Unity] Facebook SDK
Keytool not found搞定 OpenSSL 後
沒設定好 JDK 的話會接著遇到這個問題
[Unity] Facebook SDK
下載 JDK[Unity] Facebook SDK
新增 JDK 環境變數跟 OpenSSL 一樣
將路徑指到子資料夾 bin 下
設定完成後再次重新啟動 Unity
Ex. C:\Program Files\Java\jdk1.8.0_25\bin
[Unity] Facebook SDK
確認 Bundle ID要和 Facebook 後台一樣
[Unity] Facebook SDK
設定 Scenes把 Examples 中的場景全部加到 Build Settings 中
MainMenu Scene 擺第一個
[Unity] Facebook SDK
Unable to merge android menifests接下來可能會遭遇到最後這個問題
各個 Menifests 的版本設定不一
[Unity] Facebook SDK
Error Log在 Log 中可以看到所需要
minSdkVerion 和 targetSdkVersion
的最高版本為何
[Unity] Facebook SDK
SdkVersion 設定Minimum API Level 可以在 Other Settings 頁面設定
對應到 minSdkVersion
但是沒有 targetSdkVersion 的設定
比較快的方法是直接打開主要的 Manifest.xml
在裡面加入 SdkVesrion 的設定
Path: Assets/Plugins/Android/AndroidManifest.xml
[Unity] Facebook SDK
登入 FBBuild 成功後
先點擊 FB.Init 初始化
就可以開始登入了
記得要使用開發者的帳號
[Unity] Facebook SDK[Unity] Facebook SDK
發文測試測試時權限可以選擇只限本人看到
接下來就可以隨意開心地測試了
[Unity] Facebook SDK[Unity] Facebook SDK
FacebookManager on Github程式實作部分可以參考剪刀寫的 FacebookManager
用法大致如下:
m_fbManager = new FBManager(); m_fbManager.LoginCompleteEvent += OnFBLoginComplete; m_fbManager.ErrorEvent += OnFBError; m_fbManager.Login(); m_fbManager.Snapshot( texture, title, fileName );