use first person controller as assetBundle

unity提供了现成的package,可以实现CounterStrike中First Person的效果,

unity集成开发环境下使用:Project视图--》Import Package--》Character Controller

我要解决的是抛开unity集成开发环境完全用script实现。

第一步:在集成环境下打开工程,只为了加载unity自带的Character Controller的相关代码到Asset目录下



第二部:退出集成环境,将"First Person Contrller.prefab"打包成assetbundle

BuildPipeline.BuildAssetBundle(AssetDatabase.LoadMainAssetAtPath("Assets/Standard Assets/Character Controllers/First Person Controller.prefab"),
null, "Assets/Resources/FirstPersonController.unity3d", BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets);

第二步:加载到场景

url="file:///E:/danny/nnn/qqf/Assets/Resources/FirstPersonController.unity3d";
WWW www2 = WWW.LoadFromCacheOrDownload(url, 1);

Instantiate(www2.assetBundle.mainAsset,transform.position,Quaternion.identity);



2012-5-14-10:38

todo: First Person胶囊人和我导入的fbx的尺寸不匹配。

17:36

在unity集成环境下可点击导入的fbx修改scale factor。但这应该也是为集成环境下import服务的。

plugin/Editor/FBXPostProcessor.cs that was fixing the GlobalScale to 1:

class FBXPostprocessor : AssetPostprocessor { // This method is called just before importing an FBX. 

void OnPreprocessModel() { 

ModelImporter mi = (ModelImporter)assetImporter; 

mi.globalScale = 1; 

}


5-15-7:10

既然胶囊已经加载进去了,那么得到此gameobject修改尺寸不就完事了?


高度变到合适:

foreach(GameObject gameObj  in GameObject.FindObjectsOfType(typeof(GameObject)) as GameObject[]){

if(gameObj.name.Contains("First Person Controller")){

gameObj.transform.localScale = new Vector3(transform.position.x,(float)0.2,transform.position.z); 

}

}


05-16 09:18

发现还是有些“动力学”在起作用,我加一个plane先。让胶囊掉不下去


05-16 15:19

现在脚本环境下,unit scale统一缩小到了0.01,可能这会导致运行奇怪,

还是先到unity集成环境下,用原始尺寸试试看,保持胶囊两米,fbx导入时扩大到米。


05-18 7:00

可以漫游了!

if(gameObj.name.Contains("First Person Controller")){

   gameObj.transform.position.y = 12;

gameObj.transform.position.z = -50;

gameObj.rigidbody.drag = 0; //去掉阻力避免拖不动

}

else{

       gameObj.AddComponent(BoxCollider);//保证能支撑住first person

}

目前问题,人的视角始终过高,需要调低。


05-18 9:22

可能是fbx里面的零件看了是三角体,实际还是长方体,所以高度还没协调好,这个可能需要和设计方讨论。


先搞定fly mode吧,发现重力为0后,可以更畅通一点了。


05-22

todo: do not let first person go out of the environment


转载于:https://my.oschina.net/u/1771959/blog/264593

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值