我的腳本是由java改過來的,運行時有兩處錯誤,一直解決不了,求大神指點
if(Physics.Raycast(ray,out hit)){
if(hit.collider.gameObject.tag=="Finsih"){
jiludian = Vector3 (hit.point.x, hit.point.y + 0.5, hit.point.z);
transform.rotation = Quaternion.Slerp (transform.rotation, targetRotation, Time.deltaTime * 5.0);
以上是錯誤的陳述句。
using UnityEngine;
using System.Collections;
public class zhy : MonoBehaviour {
public GameObject cam;
public bool zj;
public Vector3 jiludian;
void Start () {
jiludian = transform.position;
zj = false;
}
void Update () {
if(Input.GetMouseButtonDown(0)){
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit)){
if(hit.collider.gameObject.tag=="Finsih"){
jiludian = Vector3 (hit.point.x, hit.point.y + 0.5, hit.point.z);
zj = true;
}
}
}
if(zj==true){
Vector3 targetRotation = jiludian - transform.position;
Quaternion ratation = Quaternion.LookRotation (targetRotation);
transform.rotation = ratation;
transform.rotation = Quaternion.Slerp (transform.rotation, targetRotation, Time.deltaTime * 5.0);
transform.Translate (Vector3.forward * 10 * Time.deltaTime);
transform.position = jiludian;
if((Vector3.Distance(transform.position,jiludian)<1.0)){
transform.Translate (Vector3.forward * 0);
zj=false;
}
}
}
}
uj5u.com熱心網友回復:
那兩個數字,有小數點的數字后面加個fuj5u.com熱心網友回復:
C# 浮點型float資料,比如:0.5-->寫成0.5f另外 jiludian = new Vector3(hit.point.x, hit.point.y + 0.5f, hit.point.z);
transform.rotation = Quaternion.Slerp(transform.rotation, new Quaternion(targetRotation.x,targetRotation.y,targetRotation.z,0), Time.deltaTime * 5.0f);這個不是Vector3型別,要傳Quaternion型別,所以這個要看你要傳什么,我隨便寫的一個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/65861.html
標籤:Unity3D
上一篇:大神 求解
下一篇:做一個三維場景。
