如果角色在没有鼠标移动对象的情况下移动,而跟随着玩家停留在原处,则该如何解决此事件。鼠标应移动以跟随对象,我该如何解决? 这是我的脚本https://youtu.be/f5P5epEA3-w
的工作方式我的代码:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class ObjectHoldRay : MonoBehaviour
{
public Transform player;
public Transform Kamera;
private Camera playerCam;
public float throwForce = 10;
bool hasPlayer = false;
bool beingCarried = false;
public AudioClip[] soundToPlay;
public int dmg;
private bool touched = false;
public float mesafe;
private Ray playerAim;
void Start()
{
}
void Update()
{
playerCam = Camera.main;
Ray playerAim = playerCam.GetComponent<Camera>().ViewportPointToRay(new Vector3(0.5f, 0.5f, 0));
RaycastHit hit;
if (Physics.Raycast(playerAim, out hit, mesafe))
{
if (hit.collider.gameObject.tag == "tasinabilir")
{
hasPlayer = true;
}
else
{
hasPlayer = false;
}
if (hasPlayer && Input.GetMouseButtonDown(0))
{
GetComponent<Rigidbody>().isKinematic = true;
transform.parent = Kamera;
beingCarried = true;
}
if (beingCarried)
{
if (touched)
{
GetComponent<Rigidbody>().isKinematic = false;
transform.parent = null;
beingCarried = false;
touched = false;
}
if (Input.GetAxis("Mouse ScrollWheel") > 0f) // forward
{
Debug.Log("İLeri");
}
if (Input.GetAxis("Mouse ScrollWheel") < 0f) // geri
{
Debug.Log("Geri");
}
//if (Input.GetMouseButtonDown(0))
//{
// GetComponent<Rigidbody>().isKinematic = false;
//transform.parent = null;
//beingCarried = false;
//GetComponent<Rigidbody>().AddForce(playerCam.forward * throwForce);
//}
if (Input.GetMouseButtonDown(1))
{
GetComponent<Rigidbody>().isKinematic = false;
transform.parent = null;
beingCarried = false;
}
}
}
}
void OnTriggerEnter()
{
if (beingCarried)
{
touched = true;
}
}
}
答案 0 :(得分:0)
在拾取后,您是否尝试过将可移动对象作为播放器的子代而不是照相机?
transform.parent = player;