MacBook Pro的左侧USB突然不能用了,右侧的USB还正常,但是很不方便,网上查了资料,通过以下方法解决了。
- 重置 Mac 上的 NVRAM(Apple官网教程)
- 重置 Mac 上的系统管理控制器 (SMC) (Apple官网教程)
通过以上方法,问题解决了,具体是哪个方法生效的,还不确定,看介绍应该是第二个。 如果你的Mac也出现了类似问题,不妨先试试,说不定能省个几百块的维修费。
MacBook Pro的左侧USB突然不能用了,右侧的USB还正常,但是很不方便,网上查了资料,通过以下方法解决了。
通过以上方法,问题解决了,具体是哪个方法生效的,还不确定,看介绍应该是第二个。 如果你的Mac也出现了类似问题,不妨先试试,说不定能省个几百块的维修费。
只攻击正前方的单位,向前发射一条射线,攻击碰到的单位
RaycastHit hit;
//range 射线的长度,即攻击范围,maskTarget敌方单位的mask,只攻击敌方单位
if(Physics.Raycast(unit.thisT.position, unit.thisT.forward, out hit, range, maskTarget)){
Unit targetTemp=hit.collider.gameObject.GetComponent();
if(targetTemp!=null && targetTemp.HPAttribute.HP>0){
target=targetTemp;
if(attackMode==_AttackMode.StopNAttack){
if(attackMethod!=_AttackMethod.Melee) unit.StopAnimation();
unit.StopMoving();
}
}
}
以己方单位为圆心的某一半径长度内
//返回相交球的所有碰撞体
Collider[] cols=Physics.OverlapSphere(unit.thisT.position, range, maskTarget);
//if(cols!=null && cols.Length>0) Debug.Log(cols[0]);
if(cols.Length>0){
Collider currentCollider=cols[Random.Range(0, cols.Length)];
Unit targetTemp=currentCollider.gameObject.GetComponent();
if(targetTemp!=null && targetTemp.HPAttribute.HP>0){
target=targetTemp;
if(attackMode==_AttackMode.StopNAttack){
if(attackMethod!=_AttackMethod.Melee) unit.StopAnimation();
unit.StopMoving();
}
}
}
以己方单位为圆心的扇形范围内
Collider[] cols=Physics.OverlapSphere(unit.thisT.position, range, maskTarget);
//if(cols!=null && cols.Length>0) Debug.Log(cols[0]);
if(cols.Length>0){
Collider currentCollider=cols[0];
foreach(Collider col in cols){
Quaternion targetRot=Quaternion.LookRotation(col.transform.position-unit.thisT.position);
if(Quaternion.Angle(targetRot, unit.thisT.rotation)
Unit targetTemp=currentCollider.gameObject.GetComponent();
if(targetTemp!=null && targetTemp.HPAttribute.HP>0){
target=targetTemp;
if(attackMode==_AttackMode.StopNAttack){
if(attackMethod!=_AttackMethod.Melee) unit.StopAnimation();
unit.StopMoving();
}
break;
}
}
}
}
React Native是Facebook开源的,在Javascript和React的基础上构建原生的Android和IOS应用的平台。 React Native着力于提高多平台的开发效率,Learn once,write anywhere
。
最新的OS X系统 ,要开发IOS 应用就必须使用Mac OS系统。 Homebrew:安装教程 http://brew.sh/ ,Mac上的包管理软件 Node.js : https://nodejs.org/en/ watchman:https://facebook.github.io/watchman/docs/install.html facebook的开源的一个文件监视系统。 flow:http://flowtype.org/ facebook开源的一个JavaScript静态检查工具
安装Homebrew:
1 | /usr/bin/ruby -e "$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)" |
使用Homebrew安装node.js:
brew install node
安装watchman:
brew install watchman
安装flow :
brew install flow
如果已经安转了以上的软件,需要更新到当前最新版本。 首先更新Homebrew的版本库:
brew update
更新Homebrew库的内容:
brew upgrade
清除不再使用的资源:
brew cleanup
npm是nodejs的包管理,使用npm可以安装nodejs的包,react-native也是nodejs的一个包。 使用npm安装react-native:
npm install -g react-native
安装react-native命令行工具:
npm install -g react-native-cli
运行命令:
react-native -v
得到结果:
1 | react-native-cli: 1.0.0 |
react-native安装成功
新建第一个react-native项目
react-native init HelloRN
1 | o run your app on iOS: |
运行ios:
react-native run-ios
在当前目录下面多了一个ios的目录,里面新建一个project,HelloRN的项目。 运行Android
react-native run-android
在当前目录下会多出一个anroid的目录,里面是android项目的文件。 运行react-native
项目的时候首先会使用react-native start
启动一个端口为8081的服务,用来提供JavaScript代码。 原文链接:https://segmentfault.com/a/1190000004477951
由于sdk升级到26,所以在Unity5.3.6导出Android项目时,报错如下:
Error building Player: CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details. /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir=”/Users/nestordu/Library/Android/sdk/tools” -Dfile.encoding=UTF8 -jar “/Applications/Unity5.3.6p2/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar” - stderr[ Error:Invalid command android ] stdout[ ]
导出项目时,调用了Android的SDK的tools下的命令,因为从25升级到26变化较大,所以命令不可用了“Invalid command android”。 解决方式如下: 方法1(直接删掉tools,下载25.2.5版本)
1 | cd $ANDROID_HOME #切换到android sdk目录下 |
方法2(通过sdkmanager的命令来降低版本,此方法未验证)
cd $ANDROID_HOME/sdk/tools/bin
sdkmanager –uninstall “tool;android-26”
sdkmanager –install “tool;android-25”
命令参考:https://developer.android.com/studio/command-line/sdkmanager.html
在开发sdk生成jar在eclipse里相对比较容易操作,只要导出class时指定哪里导出就可以,但在用AndroidStudio开发时要导出jar就没那么容易,需要写gradle脚本,但gradle脚本的入门成本还是比较高,网上也有打包jar的脚本参考,但大多是通过生成classes.jar重命名来生成,这样生成的jar是包含工程里所有类的,有时我们需要指定一些包和类来生成jar。
创建Android Library工程:菜单导航到 File -> New -> New Module … ,选择 Android Library,包名(com.sqstudio.test)。在gradle中加入以下脚本:
task clearJar(type: Delete) {
delete ‘libs/sdk.jar’
}
task makeJar(type:org.gradle.api.tasks.bundling.Jar) {
//指定生成的jar名
baseName ‘sdk’
//从哪里打包class文件
from(‘build/intermediates/classes/debug/com/sqstudio/test’)
//打包到jar后的目录结构
into(‘com/sqstudio/test/‘) //去掉不需要打包的目录和文件
exclude(‘BuildConfig.class’, ‘R.class’)
//去掉R$开头的文件
exclude{ it.name.startsWith(‘R$’);}
}
makeJar.dependsOn(clearJar, build)
在build.gradle写上后,只要在命令行执行gradle makeJar就可以在build/libs目录下找到这个jar包。 如果gradle执行失败,需检查环境配置(首次使用,会下载安装相关资源,需要等待)
vim ~/.bash_profile 然后加入:
GRADLE_HOME=/Applications/Android\ Studio.app/Contents/gradle/gradle-3.2;
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin
上面是个简单的例子,只能打包某个包下面的所有文件,如果要实现只打某个包下面的某些子包或者文件可参考如下示例:
task makeSdkJar(type:org.gradle.api.tasks.bundling.Jar) {
baseName ‘pluginsdk’
//只打包org.cmdmac下的org.cmdmac.pluginsdk.impl和org.cmdmac.gamecenter,其他子包不会被打包进去
from(‘build/intermediates/classes/debug/org/cmdmac/‘) {
include ‘pluginsdk/impl’
include ‘gamecenter’
}
into(‘org/cmdmac/‘)
// exclude(‘R.class’)
// exclude{ it.name.startsWith(‘R$’);}
}
参考资料:http://www.alloyteam.com/2015/03/shi-yong-gradle-da-bao-zhi-ding-bao-ming-he-lei-di-jar/