查看: 1401|回复: 3
打印 上一主题 下一主题

触摸并移动物体对象,iphone开发教程_转载

[复制链接]

2508

主题

2

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
32806
精华
12

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-6-7 16:46:42 |只看该作者 |倒序浏览
非常实用的小教程,基于iphone平台的unity3d基础开发学习教程!

I thought there would be all kinds of examples of how to move an object around in the scene using Touch, but I couldn’t find anything that was simple and straightforward for someone just starting out with Java (like me!).

After digging around in a bunch of different scripts and reading t*** a ton a posts on the Unity F***m, I found this post by col000r which had a nice, simple example. I simplified it a little bit so it would work with just 1 attached object.



    for(touch in iPhoneInput.touches) {

     
    if(touch.phase == iPhoneTouchPhase.Moved || touch.phase == iPhoneTouchPhase.Began) {

     
    transform.position = Camera.main.ScreenToWorldPoint(new Vector3 (touch.position.x, touch.position.y, 10));

     
    }

     
    }


复制代码
That script gets a good bit of the job done, but the object will jump to the position of you finger no matter where you touch the screen. I wanted the object to only move if you touch it directly. So I added in the raycast code from my previous Unity iPhone Touch Animation Tutorial (which I found in the iPhone-Match example project).



    function Update () {

     
    var hit : RaycastHit;

     
    var ray = Camera.main.ScreenPointToRay (Input.mousePosition);

     
    if (Physics.Raycast (ray, hit, 100)) {

     
    //do something here

     
    }

     
    }


复制代码
TouchMove Mini-Tutorial:

You can download the project before you get started to see the completed tutorial or you can follow along with the steps below. This one is pretty simple, so following the steps won’t take long.

1. Create a cube: Go to Game Object –> Create Other –> Cube

2. Add a Box Collider to the Cube: Go to Add Component –> Physics –> Box Collider (if your cube doesn’t already have one)

3. Create a new script: Go to Assets –> Create –> Javascript. This will create a new script in your Project panel named NewBehaviourScript. Double-click the script in your Project panel to open it in Unitron.

Copy the following code, paste it into the file, save, and then switch back in Unity. Drag-and-drop the script from the Project view onto the cube in either the Hierarchy or Scene panel.



    function Update () {

     
    var hit : RaycastHit;

     
    var ray = Camera.main.ScreenPointToRay (Input.mousePosition);

     
    for(touch in iPhoneInput.touches) {

     
    if (Physics.Raycast (ray, hit, 100)) {

     
    if(touch.phase == iPhoneTouchPhase.Moved || touch.phase == iPhoneTouchPhase.Began) {

     
    transform.position = Camera.main.ScreenToWorldPoint(new Vector3 (touch.position.x, touch.position.y, 10));

     
    }

     
    }

     
    }

     
    }


复制代码
4. Be sure to set your iPhone Bundle Identifier: Go to Edit –> Project Settings –> Player and then give it a domain and name. See Step 16 in the Unity iPhone Touch Animation Tutorail if you need help with this step.

5. Build and Run: That should do it.

Note that if you have multiple objects with Colliders on them, your cube will move when you click on any of them (bug!).

Feel free to post in the comments improvements to the above script and/or if you have suggestions for how to handle any of the following…

Planned improvements:

– Object should only move if you touch it, not other Mesh Colliders.

– Object should collide with other objects while being moved

– Object should continue to move after you lift your finger, slow over time — like a hockey puck.

– Object should bounce off other objects

– Move multiple objects independently



此贴转自:http://www.u3dpro.com/read.php?tid=142
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

Zack    

459

主题

1

听众

5478

积分

高级设计师

Rank: 6Rank: 6

纳金币
5531
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2012-11-25 03:40:56 |只看该作者
学习了。谢谢!
回复

使用道具 举报

may    

8830

主题

81

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
52336
精华
343

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

板凳
发表于 2012-12-1 23:35:36 |只看该作者
支持楼主的帖子
回复

使用道具 举报

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2012-12-2 00:45:28 |只看该作者
中文的解说太少了,,很难理解
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-2-7 14:15 , Processed in 0.063059 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部