最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity移動(dòng)端的復(fù)制要這么寫示例代碼

 更新時(shí)間:2018年08月26日 11:00:28   作者:wuzhang  
這篇文章主要給大家介紹了關(guān)于Unity移動(dòng)端的復(fù)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

Unity官網(wǎng)提供了詳盡的文檔和豐富的教學(xué)視頻,昨天跟著視頻做了一個(gè)簡單的3d游戲“roll-a-ball”。游戲涉及了許多Unity的基本知識(shí),用來入門很不錯(cuò)。

本文主要給大家了關(guān)于Unity移動(dòng)端的復(fù)制的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧

游戲上線很久了,有些玩家慢慢就流失了,為了讓剛流失的玩家再度回歸所以做了召回功能!如果一個(gè)200級(jí)的玩家10天沒上線且成功召回的,就會(huì)給予召回玩家豐厚的獎(jiǎng)勵(lì)!

Q:那如何召回這個(gè)流失的玩家呢?

A:召回肯定得有類似召回碼的東東啊,是的。服務(wù)器根據(jù)玩家ID生成一定位數(shù)的字母和數(shù)字組合,發(fā)給客戶端,客戶端召回界面顯示召回碼

Q:不可能讓玩家一個(gè)一個(gè)在聊天框輸入吧?玩家肯定會(huì)罵:“什么傻逼設(shè)計(jì),老子不玩了,,,”

A:玩家是大爺,所以做復(fù)制召回嗎功能還是很有必要的!

那么如何實(shí)現(xiàn)這個(gè)功能呢?Unity不支持復(fù)制嗎?是的,Unity是支持,僅僅支持PC端的,就是這玩意TextEditor!

TextEditor text = new TextEditor();
text.content = new GUIContent(yourText);
text.OnFocus();
text.Copy();

這么就實(shí)現(xiàn)了PC端的復(fù)制,那么移動(dòng)端的怎么做呢,別著急,小伙子,一個(gè)一個(gè)來,先看看Android是怎么復(fù)制的!

首先創(chuàng)建安卓庫工程,在MainActivity里添加這段代碼就好,導(dǎo)出jar包在Unity中調(diào)用即可,接下來會(huì)說Unity里如何去調(diào)用!

步驟:

1. 在Untiy3D項(xiàng)目的Assets目錄下創(chuàng)建Plugins目錄。

2. 在Plugins目錄下創(chuàng)建Android目錄。

3. 在Android 目錄下創(chuàng)建bin目錄。

4. 在bin 目錄下放置你編寫的類的jar包

package com.wuzhang.testandroid;
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
import android.R.string;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.app.Service;
import android.content.ClipData;
import android.content.ClipDescription;
import android.content.ClipboardManager;
import android.content.Context;
import android.os.Looper;
import android.support.v4.app.NotificationCompat;
import android.support.v4.content.FileProvider;
import android.view.ContextThemeWrapper;

public class MainActivity extends UnityPlayerActivity {
 private Vibrator mVibrator01;//聲明一個(gè)振動(dòng)器對(duì)象 
 private static Context instance;
 private String TAG = "log";
 public static String gameObgectName = "Main Camera";
 public static String methodName = "OnCoderReturn";
 public static ClipboardManager clipboard = null;
 private BatteryListener listener;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  instance = getApplicationContext();
 }
 public static Context getContext()
 {
  return instance;
 }
  /*
  * 向剪貼板中添加文本 
  */
 public void copyTextToClipboard(final String str) 
 throws Exception { 
   if (Looper.myLooper() == null){ 
    Looper.prepare(); 
   } 
   clipboard = (ClipboardManager) MainActivity.instance.getSystemService(Activity.CLIPBOARD_SERVICE); 
   ClipData textCd = ClipData.newPlainText("data", str); 
   clipboard.setPrimaryClip(textCd); 
 } 
 
 /*
  * 從剪貼板中獲取文本
  */
 public String getTextFromClipboard() {
  if (clipboard != null && clipboard.hasPrimaryClip()
  && clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
   ClipData cdText = clipboard.getPrimaryClip();
   ClipData.Item item = cdText.getItemAt(0);
   return item.getText().toString();
  }
  return "null";
 }
}

安卓中如何調(diào)用這段代碼呢?

/// <summary>
 /// 剪切文本 
 /// </summary>
 /// <param name="input"></param>
 public void CopyToClipboard(string input)
 {
#if UNITY_ANDROID
  // 對(duì)Android的調(diào)用 
  AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
  AndroidJavaObject activity = jc.GetStatic<AndroidJavaObject>("currentActivity");

  if (activity == null)
   return;

  // 復(fù)制到剪貼板 
  activity.Call("copyTextToClipboard", input);

  //從剪貼板中獲取文本 
  string text = activity.Call<string>("getTextFromClipboard");
#endif
 }

安卓的好了,接著該是高大上的IOS了,有些人看到IOS就慫了,不知道從哪下手,不知道該怎么去寫,完全沒概念。不好意思,我和你們也是一樣慫,我也是大姑娘上轎,頭一回!不要慫,就是干,大不了第一次不會(huì)成功,就去調(diào)試唄!有這個(gè)心態(tài),說明你還是幸運(yùn)的,我們直接是線上項(xiàng)目,沒有時(shí)間去調(diào)試的,做完時(shí),我心里沒一點(diǎn)底??!超慫的那種,,,后來出iPhone的測(cè)試包,沒想到一次過了,心里的大石頭終于落下了!那我們看看IOS是怎么實(shí)現(xiàn)的吧?IOS使用的ObjectC和C語言還是有些類似的,在OC中.h文件是聲明,.m文件是實(shí)現(xiàn),所以需要Clipboard.h和Clipboard.mm兩個(gè)文件!

首先去聲明這個(gè)Clipboard類,

@ interface Clipboard : NSObject
extern "C"
{
  /* compare the namelist with system processes */
  void _copyTextToClipboard(const char *textList);
}
@end

接下來是Clipboard.mm文件,切記千萬不要忘記引用 #import "Clipboard.h"

#import"Clipboard.h"
@implementation Clipboard
//將文本復(fù)制到IOS剪貼板
- (void)objc_copyTextToClipboard : (NSString*)text
{
  UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
  pasteboard.string = text;
}
@end

extern "C" {
 static Clipboard *iosClipboard;

 void _copyTextToClipboard(const char *textList)
 { 
  NSString *text = [NSString stringWithUTF8String: textList] ;
  if(iosClipboard == NULL)
  {
   iosClipboard = [[Clipboard alloc] init];
  }
  [iosClipboard objc_copyTextToClipboard: text];
 }
}

.h文件和.mm文件需要放在Unity項(xiàng)目的Assets/Plugins/下的任意路徑下即可,一般程序員大多數(shù)是有潔癖的不放到Assets/Plugins/IOS/文件夾下,心里就是不舒服!再啰嗦兩句.m和.mm有什么區(qū)別嗎?還真有,“.m"中只能編寫Object-C代碼,而”.mm"中可以編寫C代碼。所以有 extern "C" 說明我們使用的是C代碼!

Unity3D對(duì)IOS類的調(diào)用

1. 在Untiy3D項(xiàng)目的Assets目錄下創(chuàng)建Plugins目錄。

2. 在Plugins目錄下創(chuàng)建IOS目錄。

3. 在IOS 目錄下放置".h"文件和".mm"文件。

好了,趕緊說怎么調(diào)用呢,這會(huì)都夜里1點(diǎn)了,再啰嗦就天亮了!調(diào)用.h聲明的函數(shù)即可:

//調(diào)用clipboard.h中的接口 
_copyTextToClipboard (input); 
Debug.LogError ("CopyToClipboard_______"+input); 

就這么調(diào)用就OK了,是不是很失望!這個(gè)是所有平臺(tái)的調(diào)用

public static void CopyToClipboard(string input)
 {
#if UNITY_ANDROID
  // 對(duì)Android的調(diào)用 
  AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
  AndroidJavaObject activity = jc.GetStatic<AndroidJavaObject>("currentActivity");
  if (activity == null)
   return;

  // 復(fù)制到剪貼板 
  activity.Call("copyTextToClipboard", input);
#elif UNITY_IPHONE
  //調(diào)用clipboard.h中的接口 
  _copyTextToClipboard (input); 
  Debug.LogError ("CopyToClipboard_______"+input); 
#elif UNITY_EDITOR
  TextEditor te = new TextEditor();
  te.content = new GUIContent(input);
  te.OnFocus();
  te.Copy();
#endif
 }

好了,到此寫完了,現(xiàn)在感覺熬夜寫博客事件很奢侈的事情了,睡覺嘍!有問題的小伙伴記得@我,共同交流,下篇寫獲取手機(jī)剩余存儲(chǔ)空間的插件!

傳送門:https://gitee.com/wuzhang/UnityCallClipboard.git (本地下載

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 詳解iOS集成GoogleMap(定位、搜索)

    詳解iOS集成GoogleMap(定位、搜索)

    這篇文章主要介紹了iOS集成GoogleMap(定位、搜索)需要注意的地方,對(duì)此有興趣的讀者一起學(xué)習(xí)下吧。
    2018-02-02
  • iOS實(shí)現(xiàn)容器視圖控制器的方法

    iOS實(shí)現(xiàn)容器視圖控制器的方法

    本篇文章給大家詳細(xì)講述了iOS實(shí)現(xiàn)容器視圖控制器的方法,對(duì)此感興趣的朋友可以測(cè)試學(xué)習(xí)下。
    2018-02-02
  • iOS App開發(fā)中使用及自定義UITableViewCell的教程

    iOS App開發(fā)中使用及自定義UITableViewCell的教程

    這篇文章主要介紹了iOS App開發(fā)中使用及自定義UITableViewCell的教程,自定義TableViewCell文中使用Objective-C演示而非ib,需要的朋友可以參考下
    2016-04-04
  • iOS自動(dòng)移除KVO觀察者的實(shí)現(xiàn)方法

    iOS自動(dòng)移除KVO觀察者的實(shí)現(xiàn)方法

    在 Apple 的應(yīng)用開發(fā)里 KVO 提供了一個(gè)途徑,使對(duì)象(觀察者)能夠觀察其他對(duì)象(被觀察者)的屬性,當(dāng)被觀察者的屬性發(fā)生變化時(shí),觀察者就會(huì)被告知該變化。下面這篇文章主要給大家介紹了關(guān)于iOS如何自動(dòng)移除KVO觀察者的實(shí)現(xiàn)方法,需要的朋友可以參考下。
    2017-12-12
  • iOS中修改UISearchBar圓角的小技巧分享

    iOS中修改UISearchBar圓角的小技巧分享

    UISearchBar也是iOS開發(fā)常用控件之一,點(diǎn)進(jìn)去看看里面的屬性barStyle、text、placeholder等等。下面這篇文章主要給大家分享了iOS中修改UISearchBar圓角的小技巧,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。
    2017-05-05
  • 詳解iOS 多線程 鎖 互斥 同步

    詳解iOS 多線程 鎖 互斥 同步

    在iOS中有幾種方法來解決多線程訪問同一個(gè)內(nèi)存地址的互斥同步問題,本篇文章主要介紹了5中方法來解決問題,有興趣的可以了解一下。
    2016-12-12
  • IOS開發(fā)中NSURL的基本操作及用法詳解

    IOS開發(fā)中NSURL的基本操作及用法詳解

    NSURL其實(shí)就是我們?cè)跒g覽器上看到的網(wǎng)站地址,這不就是一個(gè)字符串么,為什么還要在寫一個(gè)NSURL呢,主要是因?yàn)榫W(wǎng)站地址的字符串都比較復(fù)雜,包括很多請(qǐng)求參數(shù),這樣在請(qǐng)求過程中需要解析出來每個(gè)部門,所以封裝一個(gè)NSURL,操作很方便
    2015-12-12
  • iOS開發(fā)之級(jí)聯(lián)界面(推薦界面)搭建原理

    iOS開發(fā)之級(jí)聯(lián)界面(推薦界面)搭建原理

    這篇文章主要為大家詳細(xì)介紹了iOS級(jí)聯(lián)界面(推薦界面)搭建原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • iOS移動(dòng)端軟鍵盤彈起空白和滾動(dòng)穿透問題解決方案

    iOS移動(dòng)端軟鍵盤彈起空白和滾動(dòng)穿透問題解決方案

    這篇文章主要為大家介紹了iOS移動(dòng)端軟鍵盤彈起空白和滾動(dòng)穿透問題解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • iOS貝塞爾曲線畫哆啦A夢(mèng)的代碼實(shí)例

    iOS貝塞爾曲線畫哆啦A夢(mèng)的代碼實(shí)例

    本篇文章主要介紹了iOS貝塞爾曲線畫哆啦A夢(mèng)的代碼實(shí)例,這里整理了詳細(xì)的代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-07-07

最新評(píng)論

青川县| 开原市| 昆明市| 湟中县| 吉木萨尔县| 视频| 岑巩县| 仁布县| 增城市| 赤峰市| 铅山县| 建水县| 民权县| 东兴市| 平利县| 垣曲县| 虹口区| 璧山县| 汝城县| 桃园县| 林甸县| 澄迈县| 绥江县| 太白县| 门源| 宣武区| 鸡泽县| 台东市| 温宿县| 田东县| 稷山县| 达孜县| 墨竹工卡县| 仪征市| 永平县| 大庆市| 邢台市| 洛宁县| 通渭县| 泉州市| 读书|