一、创建一个Apple00,拖拽Prfabs下的Sprite命名为Apple00,添加碰撞器Box Collider,编写代码Knife Rey1.js

二、做被切的苹果

步骤和一是一样的,但是被切的水果需要有重力,添加了一个刚体RigidBody,注意:位置Z轴不需要移动,旋转:x、y不需要旋转

三、代码

  遇到一个很奇葩的问题“js调用出现问题” 找了半天也没发现什么问题啊!原来在js中头部有个““#pragma strict”  需要把这个去掉即可!

#pragma strict
//var myColor:Color;
private var firstPosition:Vector3;//鼠标点击的第一个点
private var secondPosition:Vector3;//鼠标放开的位置
var middlePosition:Vector3;
private var isClick:boolean=false; var myRay:GameObject;
private var rayGameObject:GameObject; //private var lineRenderer:LineRenderer; //function Start () {
// lineRenderer=gameObject.AddComponent(LineRenderer);
// lineRenderer.material.color=myColor;
// lineRenderer.SetWidth(0.1,0.1);//设置宽度 起点宽度和终点宽度 function SetWidth (start : float, end : float) : void
//} //begin 3
var knifeSound:AudioClip;//切水果声音
var isHit:boolean=false;//判断是否被切
var rayPosition:Vector3;//切水果的坐标
var isRay:boolean=false;//是不是射线
var firstFruit:GameObject;//被切的苹果
var secondFruit:GameObject;//被切两半
private var myFirstFruit:GameObject;//实例化被切的苹果
private var mySecondFruit:GameObject;//实例化被切两半
private var angle:float;//角度
//end
function Update () {
var isMouseDown=Input.GetMouseButton(0);//获取按钮
if(isHit){
if(isMouseDown&&!isClick)
{
//获取鼠标按下的第一个位置
firstPosition=Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1));
isClick=true;
}
else if(isMouseDown)
{
secondPosition=Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1));
}
else if(Input.GetMouseButtonUp(0))//鼠标提起
{
isRay=true;//被切到
secondPosition=Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1));
if(secondPosition.x!=firstPosition.x)
{
angle=(1.0/3.14)*180*Mathf.Atan((secondPosition.y-firstPosition.y)/(secondPosition.x-firstPosition.x));
//Mathf.Atan((secondPosition.y-firstPosition.y)/(secondPosition.x-firstPosition.x));
}
else
{
angle=0;
}
//创建划痕,这里旋转的是幅度
//rayGameObject=Instantiate(myRay,rayPosition,Quaternion.AngleAxis(angle*180/Mathf.PI,Vector3.forward));
rayGameObject=Instantiate(myRay,rayPosition,Quaternion.AngleAxis(angle*180/3.14,Vector3.forward));
//生成两个被切的水果
myFirstFruit=Instantiate(firstFruit,transform.position,Quaternion.AngleAxis(Random.Range(50,180)*100/3.14,Vector3.forward));
mySecondFruit=Instantiate(secondFruit,transform.position,Quaternion.AngleAxis(Random.Range(80,150)*100/3.14,Vector3.forward));
if(Random.Range(1,10)>5.0)//左边、右边 是随机出现的,其实正确的应该是计算切线的角度来计算苹果切开两半的一个飞溅的方向
{
myFirstFruit.rigidbody.velocity=new Vector2(5,10);
mySecondFruit.rigidbody.velocity=new Vector2(-8,-10);
}
else
{
myFirstFruit.rigidbody.velocity=new Vector2(-5,-10);
mySecondFruit.rigidbody.velocity=new Vector2(8,10);
}
Physics.gravity=Vector3(0,-20,0);//重力加速度大些
Destroy(myFirstFruit,2.0);
Destroy(mySecondFruit,2.0);
if(audio.isPlaying)
{
audio.Stop();
}
else
{
PlaySound(knifeSound);
}
Destroy(rayGameObject,0.2);//切的划痕释放刀光 isClick=false;
isHit=false;
Destroy(rayGameObject,1.0);//一秒钟就去掉
}
}
else
{
isRay=false;
}
}
//在指定位置播放剪辑
function PlaySound(soundName)
{
if(!audio.isPlaying)
{
AudioSource.PlayClipAtPoint(soundName,Vector3(0,0,-10));
}
}
private var isClick:boolean=false;

function Update () {
var isMouseDown:boolean=Input.GetMouseButton(0);
if(!isClick){
if(isMouseDown){
var ray:Ray=Camera.main.ScreenPointToRay(Input.mousePosition);
var hit:RaycastHit;
if(collider.Raycast(ray,hit,100.0)){//Collider.Raycast 光线投射 function Raycast (ray : Ray, out hitInfo : RaycastHit, distance : float) : bool
transform.GetComponent("knifeRey1").isHit=true;
transform.GetComponent("knifeRey1").rayPosition=hit.transform.position;
}
}
}
}

四、效果

他娘的,还没搞好,看下面

Unity3D笔记 切水果三 切水果的更多相关文章

  1. 【Git 使用笔记】第三部分:多分支开发

    ###举例仓库 仓库地址A:git@gitlab.54php.cn:guowei/demos.git 仓库地址B:git@gitlab.54php.cn:infra/demos.git 开发人员仓库C ...

  2. codevs3304 水果姐逛水果街

    题目描述 Description 水果姐今天心情不错,来到了水果街. 水果街有n家水果店,呈直线结构,编号为1~n,每家店能买水果也能卖水果,并且同一家店卖与买的价格一样. 学过oi的水果姐迅速发现了 ...

  3. 水果姐逛水果街Ⅱ codevs 3305

    3305 水果姐逛水果街Ⅱ  时间限制: 2 s  空间限制: 256000 KB   题目描述 Description 水果姐第二天心情也很不错,又来逛水果街. 突然,cgh又出现了.cgh施展了魔 ...

  4. 水果姐逛水果街Ⅰ(codevs 3304)

    题目描述 Description 水果姐今天心情不错,来到了水果街. 水果街有n家水果店,呈直线结构,编号为1~n,每家店能买水果也能卖水果,并且同一家店卖与买的价格一样. 学过oi的水果姐迅速发现了 ...

  5. 【Unity Shaders】学习笔记——SurfaceShader(三)BasicDiffuse和HalfLambert

    [Unity Shaders]学习笔记——SurfaceShader(三)BasicDiffuse和HalfLambert 转载请注明出处:http://www.cnblogs.com/-867259 ...

  6. Codevs 3304 水果姐逛水果街Ⅰ 线段树

    题目: http://codevs.cn/problem/3304/   时间限制: 2 s   空间限制: 256000 KB   题目等级 : 钻石 Diamond 题解       题目描述 D ...

  7. Unity3d中如何混用三种脚本语言?

    首先要明白,这三种说的混用是指文件级别的混用,就是说一个文件是由一种语言写的.而不是说你这一个文件可以混用这三种语言,注意这是不允许的. 第二要明白,在unity3d中为什么可以使用三种语言混合开发? ...

  8. Deep Learning论文笔记之(三)单层非监督学习网络分析

    Deep Learning论文笔记之(三)单层非监督学习网络分析 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但老感 ...

  9. codevs3304 水果姐逛水果街Ⅰ

    题目描述 Description 水果姐今天心情不错,来到了水果街. 水果街有n家水果店,呈直线结构,编号为1~n,每家店能买水果也能卖水果,并且同一家店卖与买的价格一样. 学过oi的水果姐迅速发现了 ...

随机推荐

  1. kafka学习之-KafkaOffsetMonitor后台监控

    1.下载Kafka Consumer Offset Monitor安装包 http://pan.baidu.com/s/1ntzIUPN 2.在/usr/local/hadoop路径下面建立放置Kaf ...

  2. UGUI之控件以及按钮的监听事件系统

    using UnityEngine; using System.Collections; using UnityEngine.EventSystems; public class EventTrigg ...

  3. webApi2 结合uploadify 上传报错解决办法

    报错代码: Error reading MIME multipart body part. 处理办法: <httpRuntime targetFramework=" />

  4. VMware12多台虚拟机上网设置

    1.根据镜像安装好linux系统, 2.  把网络适配器移除后,重新添加试试 3. 当按照上述配置后还是无法上网,把VMnet0 桥接模式的自动 ,这里重新点击下自动设置(其实没有做到自动配置) 4. ...

  5. [SLAM] 01. "Simultaneous Localization and Mapping"

    本篇带你认识SLAM,形成客观的认识和体系 一.通过行业招聘初步了解SLAM 发信人: leecty (Terry), 信区: ParttimeJobPost标 题: 创业公司招SLAM 算法工程师发 ...

  6. Java利用for循环输出空心的菱形

    编写程序,在控制台上输出空心菱形,对角距离为6. public class Diamond { public static void main(String[] args) { printHollow ...

  7. Git Step by Step – (4) 探索.git目录

    前面一篇文章介绍了Git对象模型,接下来我们就进入".git"目录看看到底有什么东西,目录中哪些东西又跟Git对象模型相关.结合这个目录,我们将进一步了解Git的工作原理. .gi ...

  8. >>和<<<区别

    1.>>表示右移(有符号右移),如:15>>2的结果是3,-31>>3的结果是-4,左边以该数的符号位补充,移出的部分将被抛弃. 转为二进制的形式可能更好理解(省略 ...

  9. 【代码审计】EasySNS_V1.6 前台任意文件下载漏洞分析

      0x00 环境准备 EasySNS官网:http://www.imzaker.com/ 网站源码版本:EasySNS极简社区V1.60 程序源码下载:http://es.imzaker.com/i ...

  10. vmware 安装 Mac OS X 10.9 Mavericks

    This guide shows how to install fresh OS X 10.9 Mavericks on VMware workstation with Windows 7 or Wi ...