Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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
1
Question by Aladine · Aug 07, 2013 at 03:59 PM · positionmousescreenglobal

how to make the object position related to the screen

Hi, i don't think this actually a real problem what i want is simple as this, when i do print (Input.mousePosition.x + "-" + myTransform.position.x);

i want the result to be "equal", in other term, i want that the object use the same axes used by the mouse (screen) so if i place the object x,y at 0-0, it will appear in the bottom left of the screen, not in the middle. thanx

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
2
Best Answer

Answer by robertbu · Aug 07, 2013 at 05:24 PM

The mouse lives in Screen space that goes from (0,0) in the lower left of the screen and goes to (Screen.width, Screen.height) in the upper right. World space is a 3D environment. In making this conversion, you have to specify the distance in front of the camera. The conversion can be made using Camera.ScreenToWorldPoint().

So if you want the point 10 units in front of the camera:

 var pos = Vector3(Input.mousePosition.x, Input.mousePosition.y, 10);
 transform.position = Camera.main.ScreenToWorldPoint(pos);

Comment
Add comment · Show 5 · 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 Aladine · Aug 07, 2013 at 05:59 PM 0
Share

thanx this will make better see things but why do i have a nullReferenceException when i try to do that (copying your code)

avatar image robertbu · Aug 07, 2013 at 06:31 PM 0
Share

If you've changed the tag on your camera, this code will fail. That is the only thing I can see in this code that would cause a Null Reference Exception. If that is not the issue, then I'd have to see your code and a copy and paste of the error.

avatar image Aladine · Aug 07, 2013 at 07:00 PM 0
Share

i don't think my code would help you understand, it has nothing more than these two lines and the basic c# structure, could you please give me a favor and write a method that help me get starting with this ? i want the cube to go where the mouse is clicked in a 2D environment, thank you

avatar image robertbu · Aug 07, 2013 at 07:20 PM 0
Share
  • Start with a new scene

  • Create a object like a cube

  • Add this script to the object

Run the app. The cube will move where you click the mouse.


 using UnityEngine;
 using System.Collections;
 
 public class ScreenToWorld : $$anonymous$$onoBehaviour {
     
     Camera cam;  
 
     void Start () {
         if (cam == null)
             cam = Camera.main;
     }
     
     void Update () {
         if (Input.Get$$anonymous$$ouseButtonDown(0)) {
             float distance = transform.position.z - cam.transform.position.z;
             Vector3 position = new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance);
             position = cam.ScreenToWorldPoint(position);
             transform.position = position;
         }
     
     }
 }
avatar image Aladine · Aug 07, 2013 at 08:54 PM 0
Share

Thank you !!!

avatar image
1

Answer by cdrandin · Aug 07, 2013 at 04:36 PM

Here you go http://docs.unity3d.com/Documentation/ScriptReference/Camera.WorldToViewportPoint.html

Comment
Add comment · Show 1 · 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 Aladine · Aug 07, 2013 at 05:36 PM 0
Share

thank you but can you please explain more ?

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

14 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

click on screen to get the coordinate on the ground(x,z plane) 1 Answer

World mouse position not depending on Screen mouse position 2 Answers

Move to mouse position 1 Answer

Mouse.position from center of player 1 Answer

how to have an object positioned relative to the screen(like a button) 1 Answer


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