最近要实现一个针总是朝向鼠标点击处的方向,在最初只能进行2维平面上的朝向不能进行3维上的朝向,于是就把针由两部分组成这里的针由两个Cube合成。把此此代码加入针模型上,之后有个
把相应的模型移入带start和end中加入自己想要的速度就可以了。
这个代码是控制物体朝鼠标点击的点处平移的。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.Collections.Generic;
using UnityEngine;
using System;
public class Move : MonoBehaviour
{
public Transform start;
public Transform end;
public float speed;
public Vector3 CUBCoordinate;
public Vector3 cubmpvecoordinate;
GameObject gameobgect;
// Use this for initialization
void Start()
{
}
{
public Transform start;
public Transform end;
public float speed;
public Vector3 CUBCoordinate;
public Vector3 cubmpvecoordinate;
GameObject gameobgect;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
gameobgect = GameObject.Find("Cube(2)");
CUBCoordinate = transform.position;
if (Input.GetKey(KeyCode.L))
{
transform.position = Vector3.MoveTowards(start.position, end.position, speed * Time.deltaTime);
cubmpvecoordinate = transform.position;
}
}
void Update()
{
gameobgect = GameObject.Find("Cube(2)");
CUBCoordinate = transform.position;
if (Input.GetKey(KeyCode.L))
{
transform.position = Vector3.MoveTowards(start.position, end.position, speed * Time.deltaTime);
cubmpvecoordinate = transform.position;
}
}
void OnGUI()
{
Vector3 sss = start.position - end.position;
double distance = Math.Sqrt(Math.Pow(sss.x, 2) + Math.Pow(sss.y, 2) + Math.Pow(sss.z, 2));
GUILayout.Label("当前距离:" + distance.ToString("00.0000000"));
{
Vector3 sss = start.position - end.position;
double distance = Math.Sqrt(Math.Pow(sss.x, 2) + Math.Pow(sss.y, 2) + Math.Pow(sss.z, 2));
GUILayout.Label("当前距离:" + distance.ToString("00.0000000"));
}
}
这个代码是针始终朝向鼠标点击处
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Collections.Generic;
using UnityEngine;
public class Orientation : MonoBehaviour
{
public GameObject bulletPrafab;
{
public GameObject bulletPrafab;
//传入一个被看的物体坐标
public Transform target;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
//利用一个LookAt(被看目标)
transform.LookAt(target);
}
}
void Update()
{
//利用一个LookAt(被看目标)
transform.LookAt(target);
}
}
同样在相对地方移入对应模型