- Home /
Question by
OshakieGittens61 · Jun 05, 2016 at 04:13 PM ·
gameobjectraycasttransform.positionswap
Substituting between two gameobjects transform position
Can someone please give me a script which allows my third person character to switch its transform position with certain gameobjects with tag "swappable or sub". This is the script i have came up with but it doesnt work:
using UnityEngine;
using System.Collections;
public class Swap : MonoBehaviour {
//This entire script is attach to third person character
public Transform myObjectA; // my player goes here
private Transform myObjectB;
private GameObject Objectb;
private RaycastHit last_rayhit;
public AudioClip audioclip;
// Use this for initialization
void Start () {
}
GameObject GetClickedGameObject()
{
Vector3 origin = transform.position;
Vector3 direction = Camera.main.transform.forward;
float range = 20;
if (Physics.Raycast(origin, direction, out last_rayhit, range))
{
if (last_rayhit.collider.tag == "swappable")
{
myObjectB = last_rayhit.transform;
Objectb.transform.position = myObjectB.transform.position;
return Objectb; // return the transform position of object 2
}
}
else
{ }
return null;
}
private void SwapWith()
{
Vector3 tempPosition = myObjectA.position;
myObjectA.position = Objectb.transform.position;
Objectb.transform.position = tempPosition;
if (audioclip != null)
{
AudioSource.PlayClipAtPoint(audioclip, transform.position);
}
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0))
{
if (GetClickedGameObject() != null)
{
Debug.Log("Its a hit");
SwapWith();
}
}
}
}
Comment
Best Answer
Answer by melwei · Jun 07, 2016 at 04:39 PM
Try using this at SwapWith():
Vector3 ControllerPos = transform.position;
Vector3 TargetPos = [YourSwapObject].transform.position;
transform.position = TargetPos;
[YourSwapObject].transform.position = ControllerPos;
[YourSwapObject] is the object to swap the position with.
Your answer
Follow this Question
Related Questions
How to develop a script that substitute a gameobject position with my character? 0 Answers
Move up gameobject from under the ground or object (vibration problem) 0 Answers
Bottom area of a 3D model? Raycast? 1 Answer
How do I change the raycasthit material back? 1 Answer
Raycast object tag check? 3 Answers