TwitterButton
Sukemitsuです
Twitterに共有するボタンを作りました
制作理由
人がゲームをやりこむ理由は何があるでしょうか?
- 楽しい
- 難しい
- 収集要素/コンプリート要素
- 競争
などなど
これらの中で何が一番実装が簡単でしょうか?
個人的には「競争」です
「楽しさ」を売りにするならば何が楽しいのか、どうすれば楽しんでもらえるかを考える必要があります
「難しさ」を売りにするならば攻略不可能な難しさではダメで、絶妙な難易度調整とプレイヤーが上達する導線を用意する必要があります
「収集要素/コンプリート要素」を売りにするならば対象物を隠す場所や脇道、対象物のバリエーション等を考える必要があります
「競争」の場合は制作時に深く考えなくてもプレイヤー同士で競い合い、高め合うのでゲームをやりこむ要素として成立します
プレイヤー同士で競うならば真っ先にPvPが思い浮かびやすいですが、PvPゲームの場合、人数を集める必要性が生じるためゲームそのものの敷居が高くなってしまいがちになります
その点、Twitter共有の場合は個々人のプレイ記録を別々の時間にプレイしていてもわかるので手軽にゲームに競争要素を加えることができます
さらに、URLとハッシュタグでゲームの宣伝としても機能させることができます
使い方
使い方は簡単で
public string型の
- text
- link
- hashtags
にそれぞれツイートさせたいテキスト文、共有したいURL、使用したいハッシュタグを入力しておき、画面上に表示しておけばボタンをクリックするだけでツイート画面まで移動します
ゲームのスコア等を反映させたい場合、public変数なので内容を外部スクリプトから書き換えてやるだけで簡単にできます
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Twitter : MonoBehaviour
{
[Tooltip("ツイートに挿入するテキスト(空白「%20」,改行「%0a」)")]
public string text;
[Tooltip("ツイートに挿入するURL")]
public string link;
[Tooltip("ツイートに挿入するハッシュタグ:書き方「AAAA,BBBBB」")]
public string hashtags;
public void Tweet()
{
var url = "https://twitter.com/intent/tweet?" + "text=" + text + "&url" + link + "&hashtags=" + hashtags;
#if UNITY_EDITOR
Application.OpenURL(url);
#elif UNITY_WEBGL
Application.ExternalEval(string.Format("window.open('{0}','_bank')", url));
#else
Application.OpenURL(url);
#endif
}
}
参考サイト
【Unity】WebGLからTwitterのツイート投稿画面を表示する方法
https://gomafrontier.com/unity/2539
ゲームにツイート機能をつける(5/3 更新: WebGL ビルドに対応)
http://negi-lab.blog.jp/Tweet