• 大小: 5KB
    文件类型: .cs
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: C#
  • 标签: Unity  旋转  缩小  

资源简介

在这个脚本里,只要将代码里的Gameobject赋值给物体,就可以实现对模型的旋转、缩放等

资源截图

代码片段和文件信息

using UnityEngine;
using System.Collections;

public class Radio_Operation1 : MonoBehaviour
{

    #region//相关参数初始化
    public Transform target;
    public  int MouseWheelSensitivity = 1;
    private int MouseZoomMin = 1;
    private int MouseZoomMax = 5;
    private float normalDistance = 3;

    private Vector3 normalized;
    private float xSpeed = 250.0f;
    private float ySpeed = 120.0f;

    private int yMinLimit = -20;
    private int yMaxLimit = 80;

    private float x = 0.0f;
    private float y = 0.0f;

    private Vector3 screenPoint;
    private Vector3 offset;
    private Quaternion rotation = Quaternion.Euler(new Vector3(30f 0f 0f));
    private Vector3 CameraTarget;
    private GUIstyle style_opration = new GUIstyle();
    public GUISkin CustomSkin;
    private GUIstyle ziti = new GUIstyle();
    //private Rect windowRect0 = new Rect(Screen.width * 11 / 35 Screen.height * 11 / 28 285 200);
    private Rect windowRect0 = new Rect(0 0 285 200);
    #endregion

    #region//Start-初始化函数
    void Start () {
        CameraTarget = target.position;

        float z = target.transform.position.z - normalDistance;
        transform.position = rotation * new Vector3(transform.position.x transform.position.y z);

        transform.LookAt(target);

        var angles = transform.eulerAngles;
        x = angles.y;
        y = angles.x;

}
    #endregion

    #region//Updata-函数
    void Update () {
        if(Input.GetMouseButton(1))
                {
                        x += Input.GetAxis(“Mouse X“) * xSpeed * 0.02f;
                        y -= Input.GetAxis(“Mouse Y“) * ySpeed * 0.02f;

                        y = ClampAngle(y yMinLimit yMaxLimit);
 
                        var rotation = Quaternion.Euler(y x 0);
                        var position = rotation * new Vector3(0.0f 0.0f -normalDistance) + CameraTarget;
 
                        transform.rotation = rotation;
                        transform.position = position;
 
                }else if (Input.GetAxis(“Mouse ScrollWheel“) != 0)
                {
                    normalized = (transform.position - CameraTarget).normalized;
 
                        if (normalDistance >= MouseZoomMin && normalDistance <= MouseZoomMax)
                        {
                                normalDistance -= Input.GetAxis(“Mouse ScrollWheel“) * MouseWheelSensitivity;
                        }
                        if (normalDistance < MouseZoomMin)
                        {
                                normalDistance = MouseZ

评论

共有 条评论