Question by
nikitabaldan · Mar 11, 2020 at 01:51 PM ·
c#rotationscripting problemgameobjectmouse-drag
Rotate GameObject with children around itself on mouse drag
Hi, I'd like to rotate my GameObject with a set of spheres as children around itself. Until now I've written the following code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectRotator : MonoBehaviour{
Vector3 mPrevPos = Vector3.zero;
Vector3 mPosDelta = Vector3.zero;
void Update(){
if(Input.GetMouseButton(0)){
mPosDelta = Input.mousePosition - mPrevPos;
if(Vector3.Dot(transform.up, Vector3.up)>=0){
transform.Rotate(transform.up, -Vector3.Dot(mPosDelta, Camera.main.transform.right), Space.Self);
}
else{
transform.Rotate(transform.up, Vector3.Dot(mPosDelta, Camera.main.transform.right), Space.Self);
}
transform.Rotate(Camera.main.transform.right, Vector3.Dot(mPosDelta, Camera.main.transform.up), Space.Self);
}
mPrevPos = Input.mousePosition;
}
}
But this code does not work as I want to. I'd like that my GameObject stays in the same position, but on mouse drag it rotates. Could you help me please?
Comment
Your answer
Follow this Question
Related Questions
Help! Script won't work. 1 Answer
Why my code to rotate object doesn't work in normal runtime, but does in debugging? 0 Answers
After Rotating a Prefab, Transform.Position of children is inaccurate 1 Answer
How to apply script to a imported OBJ file in unity? 0 Answers
RPG instantiate problem 3 Answers