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 /
  • Help Room /
avatar image
0
Question by RealCool_Guy · Aug 11, 2017 at 06:51 AM · movementobjecttransform.positiontransform.translatetilting

How can I move an object between two positions, while it is on a rotating platform?

What I'm trying to do is create a hazard for the player that moves between two point back and forth on a gameboard. The player is a marble, and you move it by tilting the game board. I have placed stationary hazards that work fine, but once I add a moving hazard, it doesn't seem to work well.

I tried to use transform.position already, but the moving hazard doesn't stick to the board, it floats in space.

So I tried using translate, and it "sticks" to the board, but other bugs happen, such as when I tilt the gameboard the hazard becomes stuck, or moves outside its zone on the board.

This is the code that I'm using for that hazard so far

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class MovingHazard : MonoBehaviour
 {
 
     public float z_max = 1F; //set the max offset from original point
     public float rotationspeed = 2.5F;
 
     private int i;
     private GameObject gameboard;
     private float z_offset; //represents how far hazard is from original position
     private float z;
     private float direction = 1.0F; //1 for up -1 for down
     
     Vector3 starting_pos = new Vector3();
     Quaternion gameboard_rotation; //make quaternion variable for the grounds rotation value
 
     // Use this for initialization
     void Start ()
 
     {
         gameboard = GameObject.FindWithTag("Ground"); //set variable to hold the grounds object information
         starting_pos = transform.position; //starting position of the moving hazard
         
     }
     
     // Update is called once per frame
     void FixedUpdate ()
     {
         gameboard_rotation = gameboard.transform.rotation; //the value of the gameboards rotation
         
         z_offset = transform.position.z - starting_pos.z; //take displacement of current position w.r.t starting position
         if(Mathf.Abs(z_offset) >= z_max) //if the current position of the hazard is past the max offset from original position in either direction
         {
             direction = direction * -1.0F; //change the direction of the translation. Everytime it reaches the max point, the direction will reverse
         }
         
         objectmove();
     }
 
     void objectmove()
     {
 
         transform.rotation = Quaternion.Slerp(transform.rotation, gameboard_rotation, Time.deltaTime * rotationspeed); //use the hazards current rotation and rotate it to equal the gameboards rotation. Probably inefficient but whatever
 
         transform.Translate(0, 0, direction * .05F); //used to translate the object in certain direction while staying on gameboards axis. Probably voodoo magic, don't know why.
             
     }
 
 }
 

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

0 Replies

· Add your reply
  • Sort: 

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

100 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 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 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 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 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 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 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 avatar image avatar image

Related Questions

Moving walls in multiple places 1 Answer

Can someone help me rewriting my script from transform.position to transform.Translate? 1 Answer

Moving object between points 1 Answer

Limit movement to just forward/backward and left/right 0 Answers

Keep the distance of one object relative to another while changing its size 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