Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by cablebob1 · Aug 12, 2011 at 12:32 AM · javascriptiostouch

Need Help With Unity iOS "touch" Code

I am new to unity and cannot figure out the code for simply dragging an object in unity with ios touch. I need to be able to touch and drag a game object in my 2D game. Any code help or tutorial links would be great. Thanks.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

2 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by fffMalzbier · Aug 12, 2011 at 09:46 AM

I found this on the net (cant remember the autor) you need to tweak the public values in the inspector but it is working fine.

//content of DragObject.js

 var normalCollisionCount = 1;

var moveLimit = .5;

var collisionMoveFactor = .01;

var addHeightWhenClicked = 0.0;

var freezeRotationOnDrag = true;

var cam : Camera;

private var myRigidbody : Rigidbody;

private var myTransform : Transform;

private var canMove = false;

private var yPos : float;

private var gravitySetting : boolean;

private var freezeRotationSetting : boolean;

private var sqrMoveLimit : float;

private var collisionCount = 0;

private var camTransform : Transform;

function Start () {

 myRigidbody = rigidbody;
 
 myTransform = transform;
 
 if (!cam) {
     cam = Camera.main;
 }
 if (!cam) {
     Debug.LogError("Can't find camera tagged MainCamera");
     return;
 }
 camTransform = cam.transform;
 sqrMoveLimit = moveLimit * moveLimit;   // Since we're using sqrMagnitude, which is faster than magnitude

}

function OnMouseDown () { canMove = true; myTransform.Translate(Vector3.up*addHeightWhenClicked); gravitySetting = myRigidbody.useGravity; freezeRotationSetting = myRigidbody.freezeRotation; myRigidbody.useGravity = false; myRigidbody.freezeRotation = freezeRotationOnDrag; // yPos = myTransform.position.y; }

function OnMouseUp () {

 canMove = false;
 
 myRigidbody.useGravity = gravitySetting;
 
 myRigidbody.freezeRotation = freezeRotationSetting;
 
 if (!myRigidbody.useGravity) {
 
     myTransform.position.y =  myTransform.position.y-addHeightWhenClicked;  //yPos-addHeightWhenClicked;
 
 }

}

function OnCollisionEnter () {

 collisionCount++;
 

}

function OnCollisionExit () {

 collisionCount--;
 

}

function FixedUpdate () {

 if (!canMove) return;
   
 myRigidbody.velocity = Vector3.zero;


 myRigidbody.angularVelocity = Vector3.zero;

// myTransform.position.y = yPos;

 var mousePos = Input.mousePosition;
 
 var move = cam.ScreenToWorldPoint(Vector3(mousePos.x, mousePos.y,  camTransform.position.y - myTransform.position.y))- myTransform.position;
 

// move.y = 0.0;

 if (collisionCount > normalCollisionCount) {
 
     move = move.normalized*collisionMoveFactor;
 
 }
 
 else if (move.sqrMagnitude > sqrMoveLimit) {
 
     move = move.normalized*moveLimit;
 
 }
   
 myRigidbody.MovePosition(myRigidbody.position + new Vector3(move.x,move.y,0));
 

}

@script RequireComponent(Rigidbody)

Comment
Add comment · Show 4 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image cablebob1 · Sep 10, 2011 at 01:37 PM 0
Share

FYI, This script will not work on iOS devises once you build your project. You have to use the unity touch commands.

avatar image fffMalzbier · Oct 21, 2011 at 01:19 PM 0
Share

Did you try it? Unity on iOS devices simulates a mouse input on touch so you can use mouse routines. They that whole thing is not optimized for iOS touch input but it will work.

avatar image cablebob1 · Oct 21, 2011 at 02:24 PM 0
Share

I tried it and it didn't work once I built it. I had to end up shooting a ray at the object when I touched the screen. The mouse commands work when you and playing the game with the unity viewer, but once your build to the ios device, they no longer work. You have to use touch commands.

avatar image fffMalzbier · Dec 21, 2012 at 11:15 AM 0
Share

Jep does not work anymore. (I thought it worked in a prior version, the first touch get treaded like a mouse input)

avatar image
0

Answer by cablebob1 · Aug 12, 2011 at 01:05 PM

Thanks, I'll try it.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Related Questions

android touch input 1 Answer

Unity 2D Mobile Game Drawing Mechanic 0 Answers

touch position 2 Answers

Detecting Multiple Touches on same frame IOS 2 Answers

Make an object move in the direction of touch 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges